summaryrefslogtreecommitdiffstats
path: root/container-core/src/test/java/com
diff options
context:
space:
mode:
Diffstat (limited to 'container-core/src/test/java/com')
-rw-r--r--container-core/src/test/java/com/yahoo/jdisc/http/server/jetty/Http2Test.java67
-rw-r--r--container-core/src/test/java/com/yahoo/jdisc/http/server/jetty/HttpServerTest.java36
-rw-r--r--container-core/src/test/java/com/yahoo/jdisc/http/server/jetty/JettyTestDriver.java1
-rw-r--r--container-core/src/test/java/com/yahoo/jdisc/http/server/jetty/ProxyProtocolTest.java1
-rw-r--r--container-core/src/test/java/com/yahoo/jdisc/http/server/jetty/Utils.java17
5 files changed, 37 insertions, 85 deletions
diff --git a/container-core/src/test/java/com/yahoo/jdisc/http/server/jetty/Http2Test.java b/container-core/src/test/java/com/yahoo/jdisc/http/server/jetty/Http2Test.java
deleted file mode 100644
index 40b1881bc49..00000000000
--- a/container-core/src/test/java/com/yahoo/jdisc/http/server/jetty/Http2Test.java
+++ /dev/null
@@ -1,67 +0,0 @@
-// Copyright Verizon Media. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
-package com.yahoo.jdisc.http.server.jetty;
-
-import com.yahoo.container.logging.ConnectionLog;
-import com.yahoo.container.logging.ConnectionLogEntry;
-import com.yahoo.jdisc.http.ConnectorConfig;
-import com.yahoo.jdisc.http.ServerConfig;
-import org.apache.hc.client5.http.async.methods.SimpleHttpResponse;
-import org.apache.hc.client5.http.async.methods.SimpleRequestBuilder;
-import org.apache.hc.client5.http.impl.async.CloseableHttpAsyncClient;
-import org.junit.jupiter.api.Test;
-import org.junit.jupiter.api.io.TempDir;
-
-import java.nio.file.Path;
-
-import static com.yahoo.jdisc.Response.Status.OK;
-import static com.yahoo.jdisc.http.server.jetty.Utils.createHttp2Client;
-import static com.yahoo.jdisc.http.server.jetty.Utils.createSslTestDriver;
-import static com.yahoo.jdisc.http.server.jetty.Utils.generatePrivateKeyAndCertificate;
-import static org.junit.jupiter.api.Assertions.assertEquals;
-import static org.junit.jupiter.api.Assertions.assertNull;
-import static org.junit.jupiter.api.Assertions.assertTrue;
-
-/**
- * @author bjorncs
- */
-class Http2Test {
- @Test
- void requireThatServerCanRespondToHttp2Request(@TempDir Path tmpFolder) throws Exception {
- Path privateKeyFile = tmpFolder.resolve("private-key.pem");
- Path certificateFile = tmpFolder.resolve("certificate.pem");
- generatePrivateKeyAndCertificate(privateKeyFile, certificateFile);
-
- MetricConsumerMock metricConsumer = new MetricConsumerMock();
- InMemoryConnectionLog connectionLog = new InMemoryConnectionLog();
- JettyTestDriver driver = createSslTestDriver(certificateFile, privateKeyFile, metricConsumer, connectionLog);
- try (CloseableHttpAsyncClient client = createHttp2Client(driver)) {
- String uri = "https://localhost:" + driver.server().getListenPort() + "/status.html";
- SimpleHttpResponse response = client.execute(SimpleRequestBuilder.get(uri).build(), null).get();
- assertNull(response.getBodyText());
- assertEquals(OK, response.getCode());
- }
- assertTrue(driver.close());
- ConnectionLogEntry entry = connectionLog.logEntries().get(0);
- assertEquals("HTTP/2.0", entry.httpProtocol().get());
- }
-
- @Test
- void requireThatServerCanRespondToHttp2PlainTextRequest() throws Exception {
- InMemoryConnectionLog connectionLog = new InMemoryConnectionLog();
- JettyTestDriver driver = JettyTestDriver.newConfiguredInstance(
- new EchoRequestHandler(),
- new ServerConfig.Builder().connectionLog(new ServerConfig.ConnectionLog.Builder().enabled(true)),
- new ConnectorConfig.Builder(),
- binder -> binder.bind(ConnectionLog.class).toInstance(connectionLog));
- try (CloseableHttpAsyncClient client = createHttp2Client(driver)) {
- String uri = "http://localhost:" + driver.server().getListenPort() + "/status.html";
- SimpleHttpResponse response = client.execute(SimpleRequestBuilder.get(uri).build(), null).get();
- assertNull(response.getBodyText());
- assertEquals(OK, response.getCode());
- }
- assertTrue(driver.close());
- ConnectionLogEntry entry = connectionLog.logEntries().get(0);
- assertEquals("HTTP/2.0", entry.httpProtocol().get());
- }
-
-}
diff --git a/container-core/src/test/java/com/yahoo/jdisc/http/server/jetty/HttpServerTest.java b/container-core/src/test/java/com/yahoo/jdisc/http/server/jetty/HttpServerTest.java
index 40f02ed676e..be96fc2332d 100644
--- a/container-core/src/test/java/com/yahoo/jdisc/http/server/jetty/HttpServerTest.java
+++ b/container-core/src/test/java/com/yahoo/jdisc/http/server/jetty/HttpServerTest.java
@@ -34,7 +34,10 @@ import org.apache.hc.client5.http.entity.mime.FormBodyPart;
import org.apache.hc.client5.http.entity.mime.FormBodyPartBuilder;
import org.apache.hc.client5.http.entity.mime.StringBody;
import org.apache.hc.client5.http.impl.async.CloseableHttpAsyncClient;
+import org.apache.hc.client5.http.impl.async.H2AsyncClientBuilder;
+import org.apache.hc.client5.http.ssl.ClientTlsStrategyBuilder;
import org.apache.hc.core5.http.ContentType;
+import org.apache.hc.core5.http.nio.ssl.TlsStrategy;
import org.assertj.core.api.Assertions;
import org.eclipse.jetty.server.handler.AbstractHandlerContainer;
import org.junit.Rule;
@@ -76,7 +79,6 @@ import static com.yahoo.jdisc.http.HttpHeaders.Names.X_DISABLE_CHUNKING;
import static com.yahoo.jdisc.http.HttpHeaders.Values.APPLICATION_X_WWW_FORM_URLENCODED;
import static com.yahoo.jdisc.http.HttpHeaders.Values.CLOSE;
import static com.yahoo.jdisc.http.server.jetty.SimpleHttpClient.ResponseValidator;
-import static com.yahoo.jdisc.http.server.jetty.Utils.createHttp2Client;
import static com.yahoo.jdisc.http.server.jetty.Utils.createSslTestDriver;
import static com.yahoo.jdisc.http.server.jetty.Utils.generatePrivateKeyAndCertificate;
import static org.cthul.matchers.CthulMatchers.containsPattern;
@@ -88,6 +90,7 @@ import static org.hamcrest.CoreMatchers.startsWith;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotEquals;
+import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
import static org.mockito.Mockito.atLeast;
@@ -515,6 +518,25 @@ public class HttpServerTest {
assertTrue(driver.close());
}
+ @Test
+ public void requireThatServerCanRespondToHttp2Request() throws Exception {
+ Path privateKeyFile = tmpFolder.newFile().toPath();
+ Path certificateFile = tmpFolder.newFile().toPath();
+ generatePrivateKeyAndCertificate(privateKeyFile, certificateFile);
+
+ MetricConsumerMock metricConsumer = new MetricConsumerMock();
+ InMemoryConnectionLog connectionLog = new InMemoryConnectionLog();
+ JettyTestDriver driver = createSslTestDriver(certificateFile, privateKeyFile, metricConsumer, connectionLog);
+ try (CloseableHttpAsyncClient client = createHttp2Client(driver)) {
+ String uri = "https://localhost:" + driver.server().getListenPort() + "/status.html";
+ SimpleHttpResponse response = client.execute(SimpleRequestBuilder.get(uri).build(), null).get();
+ assertNull(response.getBodyText());
+ assertEquals(OK, response.getCode());
+ }
+ assertTrue(driver.close());
+ ConnectionLogEntry entry = connectionLog.logEntries().get(0);
+ assertEquals("HTTP/2.0", entry.httpProtocol().get());
+ }
@Test
public void requireThatTlsClientAuthenticationEnforcerRejectsRequestsForNonWhitelistedPaths() throws IOException {
@@ -737,6 +759,18 @@ public class HttpServerTest {
assertTrue(driver.close());
}
+ private static CloseableHttpAsyncClient createHttp2Client(JettyTestDriver driver) {
+ TlsStrategy tlsStrategy = ClientTlsStrategyBuilder.create()
+ .setSslContext(driver.sslContext())
+ .build();
+ var client = H2AsyncClientBuilder.create()
+ .disableAutomaticRetries()
+ .setTlsStrategy(tlsStrategy)
+ .build();
+ client.start();
+ return client;
+ }
+
private static JettyTestDriver createSslWithTlsClientAuthenticationEnforcer(Path certificateFile, Path privateKeyFile) {
ConnectorConfig.Builder connectorConfig = new ConnectorConfig.Builder()
.tlsClientAuthEnforcer(
diff --git a/container-core/src/test/java/com/yahoo/jdisc/http/server/jetty/JettyTestDriver.java b/container-core/src/test/java/com/yahoo/jdisc/http/server/jetty/JettyTestDriver.java
index cf226d7cd18..57438cbe207 100644
--- a/container-core/src/test/java/com/yahoo/jdisc/http/server/jetty/JettyTestDriver.java
+++ b/container-core/src/test/java/com/yahoo/jdisc/http/server/jetty/JettyTestDriver.java
@@ -75,6 +75,7 @@ public class JettyTestDriver {
requestHandler,
new ServerConfig.Builder().connectionLog(new ServerConfig.ConnectionLog.Builder().enabled(true)),
new ConnectorConfig.Builder()
+ .http2Enabled(true)
.ssl(new ConnectorConfig.Ssl.Builder()
.enabled(true)
.clientAuth(tlsClientAuth == TlsClientAuth.NEED
diff --git a/container-core/src/test/java/com/yahoo/jdisc/http/server/jetty/ProxyProtocolTest.java b/container-core/src/test/java/com/yahoo/jdisc/http/server/jetty/ProxyProtocolTest.java
index fe62a9641de..d29abea024e 100644
--- a/container-core/src/test/java/com/yahoo/jdisc/http/server/jetty/ProxyProtocolTest.java
+++ b/container-core/src/test/java/com/yahoo/jdisc/http/server/jetty/ProxyProtocolTest.java
@@ -119,6 +119,7 @@ class ProxyProtocolTest {
Path certificateFile, Path privateKeyFile, RequestLog requestLog,
ConnectionLog connectionLog, boolean mixedMode) {
ConnectorConfig.Builder connectorConfig = new ConnectorConfig.Builder()
+ .http2Enabled(true)
.proxyProtocol(new ConnectorConfig.ProxyProtocol.Builder()
.enabled(true)
.mixedMode(mixedMode))
diff --git a/container-core/src/test/java/com/yahoo/jdisc/http/server/jetty/Utils.java b/container-core/src/test/java/com/yahoo/jdisc/http/server/jetty/Utils.java
index e2949d96b08..626ab521773 100644
--- a/container-core/src/test/java/com/yahoo/jdisc/http/server/jetty/Utils.java
+++ b/container-core/src/test/java/com/yahoo/jdisc/http/server/jetty/Utils.java
@@ -9,10 +9,6 @@ import com.yahoo.security.Pkcs10Csr;
import com.yahoo.security.Pkcs10CsrBuilder;
import com.yahoo.security.X509CertificateBuilder;
import com.yahoo.security.X509CertificateUtils;
-import org.apache.hc.client5.http.impl.async.CloseableHttpAsyncClient;
-import org.apache.hc.client5.http.impl.async.H2AsyncClientBuilder;
-import org.apache.hc.client5.http.ssl.ClientTlsStrategyBuilder;
-import org.apache.hc.core5.http.nio.ssl.TlsStrategy;
import javax.security.auth.x500.X500Principal;
import java.io.IOException;
@@ -69,17 +65,4 @@ class Utils {
.build();
Files.writeString(certificateFile, X509CertificateUtils.toPem(certificate));
}
-
- static CloseableHttpAsyncClient createHttp2Client(JettyTestDriver driver) {
- TlsStrategy tlsStrategy = ClientTlsStrategyBuilder.create()
- .setSslContext(driver.sslContext())
- .build();
- var client = H2AsyncClientBuilder.create()
- .disableAutomaticRetries()
- .setTlsStrategy(tlsStrategy)
- .build();
- client.start();
- return client;
- }
-
}