aboutsummaryrefslogtreecommitdiffstats
path: root/container-core/src/test
diff options
context:
space:
mode:
authorBjørn Christian Seime <bjorncs@yahooinc.com>2022-10-06 08:46:13 +0200
committerBjørn Christian Seime <bjorncs@yahooinc.com>2022-10-06 09:16:36 +0200
commitaf1ddbb1b165ec65eefa7f2471c38f6bd116de49 (patch)
treecb0523a2d8e7e08a81687dd158d971a6c509fe86 /container-core/src/test
parent24c70d22397fad2c2d5d2e8b45d7da664283fd85 (diff)
Allow default server name to be overridden
Diffstat (limited to 'container-core/src/test')
-rw-r--r--container-core/src/test/java/com/yahoo/jdisc/http/server/jetty/HttpServerTest.java33
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() {