aboutsummaryrefslogtreecommitdiffstats
path: root/container-core/src/main/java
diff options
context:
space:
mode:
authorBjørn Christian Seime <bjorncs@verizonmedia.com>2021-09-02 15:18:53 +0200
committerBjørn Christian Seime <bjorncs@verizonmedia.com>2021-09-02 15:18:53 +0200
commit20c0c1ea8d08e2fea94635f8dbe564149c6e70f2 (patch)
tree5430f52248d6bac1c1e98e0281f1f0da315aa2c1 /container-core/src/main/java
parent2487f854a2d7c3a7dc5a0c008c56c98d81ef5008 (diff)
Prefer 'Host' header when constructing uri builder
Diffstat (limited to 'container-core/src/main/java')
-rw-r--r--container-core/src/main/java/com/yahoo/restapi/RestApiImpl.java14
1 files changed, 10 insertions, 4 deletions
diff --git a/container-core/src/main/java/com/yahoo/restapi/RestApiImpl.java b/container-core/src/main/java/com/yahoo/restapi/RestApiImpl.java
index fda08342ead..68459cdb89d 100644
--- a/container-core/src/main/java/com/yahoo/restapi/RestApiImpl.java
+++ b/container-core/src/main/java/com/yahoo/restapi/RestApiImpl.java
@@ -400,10 +400,16 @@ class RestApiImpl implements RestApi {
@Override public ObjectMapper jacksonJsonMapper() { return jacksonJsonMapper; }
@Override public UriBuilder uriBuilder() {
URI uri = request.getUri();
- int uriPort = uri.getPort();
- return uriPort != -1
- ? new UriBuilder(uri.getScheme() + "://" + uri.getHost() + ':' + uriPort)
- : new UriBuilder(uri.getScheme() + "://" + uri.getHost());
+ StringBuilder sb = new StringBuilder(uri.getScheme()).append("://");
+ if (request.getHeader("Host") != null) {
+ sb.append(request.getHeader("Host"));
+ } else {
+ sb.append(uri.getHost());
+ if (uri.getPort() > 0) {
+ sb.append(":").append(uri.getPort());
+ }
+ }
+ return new UriBuilder(sb.toString());
}
@Override public AclMapping.Action aclAction() { return aclAction; }
@Override public Optional<Principal> userPrincipal() {