diff options
author | Bjørn Christian Seime <bjorncs@yahooinc.com> | 2023-04-27 13:28:47 +0200 |
---|---|---|
committer | Bjørn Christian Seime <bjorncs@yahooinc.com> | 2023-04-27 13:57:02 +0200 |
commit | c688e62a1fa657aede46ebbd51bcdb4433aa2cb6 (patch) | |
tree | 1706fbac2f0c5d694831622ab5e2d05a6021f19a /container-core/src/main/java | |
parent | 139646116e78288ee7c53f92a17802e7e329e6c0 (diff) |
Use timestamp from Jetty as creation time for Request/HttpRequest
Diffstat (limited to 'container-core/src/main/java')
3 files changed, 15 insertions, 13 deletions
diff --git a/container-core/src/main/java/com/yahoo/jdisc/http/HttpRequest.java b/container-core/src/main/java/com/yahoo/jdisc/http/HttpRequest.java index 4ad38a9f965..877140a94d7 100644 --- a/container-core/src/main/java/com/yahoo/jdisc/http/HttpRequest.java +++ b/container-core/src/main/java/com/yahoo/jdisc/http/HttpRequest.java @@ -81,9 +81,9 @@ public class HttpRequest extends Request { private Long connectionTimeout; protected HttpRequest(CurrentContainer container, URI uri, Method method, Version version, - SocketAddress remoteAddress, Long connectedAtMillis) + SocketAddress remoteAddress, Long connectedAtMillis, long creationTime) { - super(container, uri); + super(container, uri, true, creationTime); try { this.method = method; this.version = version; @@ -313,13 +313,13 @@ public class HttpRequest extends Request { public static HttpRequest newServerRequest(CurrentContainer container, URI uri, Method method, Version version, SocketAddress remoteAddress) { - return new HttpRequest(container, uri, method, version, remoteAddress, null); + return new HttpRequest(container, uri, method, version, remoteAddress, null, -1); } public static HttpRequest newServerRequest(CurrentContainer container, URI uri, Method method, Version version, - SocketAddress remoteAddress, long connectedAtMillis) + SocketAddress remoteAddress, long connectedAtMillis, long creationTime) { - return new HttpRequest(container, uri, method, version, remoteAddress, connectedAtMillis); + return new HttpRequest(container, uri, method, version, remoteAddress, connectedAtMillis, creationTime); } public static HttpRequest newClientRequest(Request parent, URI uri) { diff --git a/container-core/src/main/java/com/yahoo/jdisc/http/filter/util/FilterTestUtils.java b/container-core/src/main/java/com/yahoo/jdisc/http/filter/util/FilterTestUtils.java index 147c13c8e3a..f3ad631f136 100644 --- a/container-core/src/main/java/com/yahoo/jdisc/http/filter/util/FilterTestUtils.java +++ b/container-core/src/main/java/com/yahoo/jdisc/http/filter/util/FilterTestUtils.java @@ -76,7 +76,7 @@ public class FilterTestUtils { public DiscFilterRequest build() { var httpReq = HttpRequest.newServerRequest( - new DummyContainer(clock), uri, method, version, remoteAddress, clock.millis()); + new DummyContainer(clock), uri, method, version, remoteAddress, clock.millis(), clock.millis()); var filterReq = new DiscFilterRequest(httpReq); filterReq.setUserPrincipal(principal); attributes.forEach(filterReq::setAttribute); 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 1aa12808f71..8c8109fa518 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 @@ -26,19 +26,21 @@ class HttpRequestFactory { public static HttpRequest newJDiscRequest(CurrentContainer container, HttpServletRequest servletRequest) { try { - HttpRequest httpRequest = HttpRequest.newServerRequest( + var jettyRequest = (Request) servletRequest; + var jdiscHttpReq = HttpRequest.newServerRequest( container, getUri(servletRequest), getMethod(servletRequest), HttpRequest.Version.fromString(servletRequest.getProtocol()), 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()); + getConnection(jettyRequest).getCreatedTimeStamp(), + jettyRequest.getTimeStamp()); + jdiscHttpReq.context().put(RequestUtils.JDISC_REQUEST_X509CERT, getCertChain(servletRequest)); + jdiscHttpReq.context().put(RequestUtils.JDICS_REQUEST_PORT, servletRequest.getLocalPort()); SSLSession sslSession = (SSLSession) servletRequest.getAttribute(RequestUtils.JETTY_REQUEST_SSLSESSION); - httpRequest.context().put(RequestUtils.JDISC_REQUEST_SSLSESSION, sslSession); - servletRequest.setAttribute(HttpRequest.class.getName(), httpRequest); - return httpRequest; + jdiscHttpReq.context().put(RequestUtils.JDISC_REQUEST_SSLSESSION, sslSession); + servletRequest.setAttribute(HttpRequest.class.getName(), jdiscHttpReq); + return jdiscHttpReq; } catch (Utf8Appendable.NotUtf8Exception e) { throw createBadQueryException(e); } |