diff options
author | Bjørn Christian Seime <bjorncs@verizonmedia.com> | 2022-04-28 11:01:49 +0200 |
---|---|---|
committer | Bjørn Christian Seime <bjorncs@verizonmedia.com> | 2022-04-28 11:01:49 +0200 |
commit | 69cf18b04f2a8f34a887da9d8c2c349bdf8a4c29 (patch) | |
tree | cd20be22afee24261adecde16ddc7e7cc470b8e4 /container-core/src/main/java/com/yahoo/jdisc/http/filter | |
parent | d1be606eb7b3cc5a77ec171890cf002be8c7ba88 (diff) |
Use port as observed by client when constructing URI
Diffstat (limited to 'container-core/src/main/java/com/yahoo/jdisc/http/filter')
-rw-r--r-- | container-core/src/main/java/com/yahoo/jdisc/http/filter/util/FilterUtils.java | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/container-core/src/main/java/com/yahoo/jdisc/http/filter/util/FilterUtils.java b/container-core/src/main/java/com/yahoo/jdisc/http/filter/util/FilterUtils.java index 3f627667da3..9bf3b78a3b8 100644 --- a/container-core/src/main/java/com/yahoo/jdisc/http/filter/util/FilterUtils.java +++ b/container-core/src/main/java/com/yahoo/jdisc/http/filter/util/FilterUtils.java @@ -10,12 +10,14 @@ import com.yahoo.jdisc.handler.ContentChannel; import com.yahoo.jdisc.handler.ResponseHandler; import com.yahoo.jdisc.http.Cookie; import com.yahoo.jdisc.http.filter.DiscFilterRequest; +import com.yahoo.jdisc.http.server.jetty.RequestUtils; import java.io.UncheckedIOException; import java.net.URI; import java.net.URISyntaxException; import java.nio.ByteBuffer; import java.util.List; +import java.util.Optional; /** * Helper methods for auth0/okta request filters. @@ -64,7 +66,10 @@ public class FilterUtils { public static URI createUriFromRequest(DiscFilterRequest request, String path) { try { - return new URI(request.getScheme(), null, request.getServerName(), request.getUri().getPort(), path, null, null); + // Prefer local port as observed by client over local listen port + int port = Optional.ofNullable((Integer)request.getAttribute(RequestUtils.JDICS_REQUEST_PORT)) + .orElse(request.getUri().getPort()); + return new URI(request.getScheme(), null, request.getServerName(), port, path, null, null); } catch (URISyntaxException e) { throw new RuntimeException(e); } |