diff options
author | Bjørn Christian Seime <bjorn.christian@seime.no> | 2021-08-17 13:01:41 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-08-17 13:01:41 +0200 |
commit | c7cddccf31151c22b2e1d882b9bd36a243815a0b (patch) | |
tree | b8202a2da8c1d7c4950ffa51942779fc9034e6f7 /container-core/src/test/java/com | |
parent | fed02e0b81cedd76962da597d73462d0d23e0bf3 (diff) |
Revert "Bjorncs/http2"
Diffstat (limited to 'container-core/src/test/java/com')
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; - } - } |