diff options
author | Bjørn Christian Seime <bjorncs@yahooinc.com> | 2022-10-06 08:46:13 +0200 |
---|---|---|
committer | Bjørn Christian Seime <bjorncs@yahooinc.com> | 2022-10-06 09:16:36 +0200 |
commit | af1ddbb1b165ec65eefa7f2471c38f6bd116de49 (patch) | |
tree | cb0523a2d8e7e08a81687dd158d971a6c509fe86 /container-core/src/test/java/com/yahoo/jdisc/http/server/jetty | |
parent | 24c70d22397fad2c2d5d2e8b45d7da664283fd85 (diff) |
Allow default server name to be overridden
Diffstat (limited to 'container-core/src/test/java/com/yahoo/jdisc/http/server/jetty')
-rw-r--r-- | container-core/src/test/java/com/yahoo/jdisc/http/server/jetty/HttpServerTest.java | 33 |
1 files changed, 31 insertions, 2 deletions
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 5814ab230bd..2c5d36bd776 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 @@ -30,6 +30,7 @@ import com.yahoo.security.SslContextBuilder; import com.yahoo.security.tls.TlsContext; import org.apache.hc.client5.http.async.methods.SimpleHttpResponse; import org.apache.hc.client5.http.async.methods.SimpleRequestBuilder; +import org.apache.hc.client5.http.classic.methods.HttpGet; 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; @@ -43,7 +44,6 @@ import org.junit.jupiter.api.Test; import org.junit.jupiter.api.io.TempDir; import javax.net.ssl.SSLContext; - import java.io.File; import java.io.IOException; import java.net.BindException; @@ -89,7 +89,9 @@ import static org.hamcrest.CoreMatchers.instanceOf; import static org.hamcrest.CoreMatchers.is; import static org.hamcrest.CoreMatchers.startsWith; import static org.hamcrest.MatcherAssert.assertThat; -import static org.junit.jupiter.api.Assertions.*; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; import static org.mockito.ArgumentMatchers.any; import static org.mockito.Mockito.atLeast; import static org.mockito.Mockito.mock; @@ -740,6 +742,23 @@ public class HttpServerTest { assertTrue(driver.close()); } + @Test + void requestThatFallbackServerNameCanBeOverridden() throws Exception { + String fallbackHostname = "myhostname"; + JettyTestDriver driver = JettyTestDriver.newConfiguredInstance( + new UriRequestHandler(), + new ServerConfig.Builder(), + new ConnectorConfig.Builder() + .serverName(new ConnectorConfig.ServerName.Builder().fallback(fallbackHostname))); + int listenPort = driver.server().getListenPort(); + HttpGet req = new HttpGet("http://localhost:" + listenPort + "/"); + req.addHeader("Host", null); + driver.client().execute(req) + .expectStatusCode(is(OK)) + .expectContent(containsString("http://" + fallbackHostname + ":" + listenPort + "/")); + assertTrue(driver.close()); + } + private static JettyTestDriver createSslWithTlsClientAuthenticationEnforcer(Path certificateFile, Path privateKeyFile) { ConnectorConfig.Builder connectorConfig = new ConnectorConfig.Builder() .tlsClientAuthEnforcer( @@ -916,6 +935,16 @@ public class HttpServerTest { } } + private static class UriRequestHandler extends AbstractRequestHandler { + @Override + public ContentChannel handleRequest(Request req, ResponseHandler handler) { + final ContentChannel ch = handler.handleResponse(new Response(OK)); + ch.write(ByteBuffer.wrap(req.getUri().toString().getBytes(StandardCharsets.UTF_8)), null); + ch.close(null); + return null; + } + } + private static Module newBindingSetSelector(final String setName) { return new AbstractModule() { |