aboutsummaryrefslogtreecommitdiffstats
path: root/container-core/src/main/java/com/yahoo/jdisc/http/filter
diff options
context:
space:
mode:
authorBjørn Christian Seime <bjorncs@verizonmedia.com>2022-04-28 11:01:49 +0200
committerBjørn Christian Seime <bjorncs@verizonmedia.com>2022-04-28 11:01:49 +0200
commit69cf18b04f2a8f34a887da9d8c2c349bdf8a4c29 (patch)
treecd20be22afee24261adecde16ddc7e7cc470b8e4 /container-core/src/main/java/com/yahoo/jdisc/http/filter
parentd1be606eb7b3cc5a77ec171890cf002be8c7ba88 (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.java7
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);
}