summaryrefslogtreecommitdiffstats
path: root/container-core/src/main/java/com/yahoo/jdisc/http/server
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/server
parentd1be606eb7b3cc5a77ec171890cf002be8c7ba88 (diff)
Use port as observed by client when constructing URI
Diffstat (limited to 'container-core/src/main/java/com/yahoo/jdisc/http/server')
-rw-r--r--container-core/src/main/java/com/yahoo/jdisc/http/server/jetty/HttpRequestFactory.java1
-rw-r--r--container-core/src/main/java/com/yahoo/jdisc/http/server/jetty/RequestUtils.java5
2 files changed, 6 insertions, 0 deletions
diff --git a/container-core/src/main/java/com/yahoo/jdisc/http/server/jetty/HttpRequestFactory.java b/container-core/src/main/java/com/yahoo/jdisc/http/server/jetty/HttpRequestFactory.java
index 8edc2eb84d0..8a298fb3268 100644
--- a/container-core/src/main/java/com/yahoo/jdisc/http/server/jetty/HttpRequestFactory.java
+++ b/container-core/src/main/java/com/yahoo/jdisc/http/server/jetty/HttpRequestFactory.java
@@ -33,6 +33,7 @@ class HttpRequestFactory {
new InetSocketAddress(servletRequest.getRemoteAddr(), servletRequest.getRemotePort()),
getConnection((Request) servletRequest).getCreatedTimeStamp());
httpRequest.context().put(RequestUtils.JDISC_REQUEST_X509CERT, getCertChain(servletRequest));
+ httpRequest.context().put(RequestUtils.JDICS_REQUEST_PORT, servletRequest.getLocalPort());
servletRequest.setAttribute(HttpRequest.class.getName(), httpRequest);
return httpRequest;
} catch (Utf8Appendable.NotUtf8Exception e) {
diff --git a/container-core/src/main/java/com/yahoo/jdisc/http/server/jetty/RequestUtils.java b/container-core/src/main/java/com/yahoo/jdisc/http/server/jetty/RequestUtils.java
index ae18c78a7d3..1bc862bc787 100644
--- a/container-core/src/main/java/com/yahoo/jdisc/http/server/jetty/RequestUtils.java
+++ b/container-core/src/main/java/com/yahoo/jdisc/http/server/jetty/RequestUtils.java
@@ -17,6 +17,11 @@ public class RequestUtils {
public static final String JDISC_RESPONSE_CHAIN = "jdisc.response.chain";
public static final String SERVLET_REQUEST_X509CERT = "javax.servlet.request.X509Certificate";
+ // The local port as reported by servlet spec. This will be influenced by Host header and similar mechanisms.
+ // The request URI uses the local listen port as the URI is used for handler routing/bindings.
+ // Use this attribute for generating URIs that is presented to client.
+ public static final String JDICS_REQUEST_PORT = "jdisc.request.port";
+
private RequestUtils() {}
public static Connection getConnection(Request request) {