aboutsummaryrefslogtreecommitdiffstats
path: root/container-core/src/main/java/com/yahoo/jdisc
diff options
context:
space:
mode:
authorBjørn Christian Seime <bjorncs@yahooinc.com>2023-07-18 13:18:37 +0200
committerBjørn Christian Seime <bjorncs@yahooinc.com>2023-07-19 15:53:56 +0200
commit6dad9426c16cc5a2e95247d8e170fab07baa862e (patch)
tree720d7c642c6065a758aa57238247564af0906e03 /container-core/src/main/java/com/yahoo/jdisc
parent6a04405f7f7072d8aa04f486da55231580720855 (diff)
Make headers controlling client address connector specific
Diffstat (limited to 'container-core/src/main/java/com/yahoo/jdisc')
-rw-r--r--container-core/src/main/java/com/yahoo/jdisc/http/server/jetty/AccessLogRequestLog.java17
-rw-r--r--container-core/src/main/java/com/yahoo/jdisc/http/server/jetty/JettyHttpServer.java2
2 files changed, 7 insertions, 12 deletions
diff --git a/container-core/src/main/java/com/yahoo/jdisc/http/server/jetty/AccessLogRequestLog.java b/container-core/src/main/java/com/yahoo/jdisc/http/server/jetty/AccessLogRequestLog.java
index 5b51eeee7d6..7a305c23ba3 100644
--- a/container-core/src/main/java/com/yahoo/jdisc/http/server/jetty/AccessLogRequestLog.java
+++ b/container-core/src/main/java/com/yahoo/jdisc/http/server/jetty/AccessLogRequestLog.java
@@ -7,8 +7,6 @@ import com.yahoo.container.logging.AccessLogEntry;
import com.yahoo.container.logging.RequestLog;
import com.yahoo.container.logging.RequestLogEntry;
import com.yahoo.jdisc.http.HttpRequest;
-import com.yahoo.jdisc.http.ServerConfig;
-import jakarta.servlet.http.HttpServletRequest;
import org.eclipse.jetty.http2.HTTP2Stream;
import org.eclipse.jetty.http2.server.HttpTransportOverHTTP2;
import org.eclipse.jetty.server.HttpChannel;
@@ -27,6 +25,7 @@ import java.util.function.BiConsumer;
import java.util.logging.Level;
import java.util.logging.Logger;
+import static com.yahoo.jdisc.http.server.jetty.RequestUtils.getConnector;
import static com.yahoo.jdisc.http.server.jetty.RequestUtils.getConnectorLocalPort;
/**
@@ -44,13 +43,9 @@ class AccessLogRequestLog extends AbstractLifeCycle implements org.eclipse.jetty
private static final List<String> LOGGED_REQUEST_HEADERS = List.of("Vespa-Client-Version");
private final RequestLog requestLog;
- private final List<String> remoteAddressHeaders;
- private final List<String> remotePortHeaders;
- AccessLogRequestLog(RequestLog requestLog, ServerConfig.AccessLog config) {
+ AccessLogRequestLog(RequestLog requestLog) {
this.requestLog = requestLog;
- this.remoteAddressHeaders = config.remoteAddressHeaders();
- this.remotePortHeaders = config.remotePortHeaders();
}
@Override
@@ -144,16 +139,16 @@ class AccessLogRequestLog extends AbstractLifeCycle implements org.eclipse.jetty
}
}
- private String getRemoteAddress(HttpServletRequest request) {
- for (String header : remoteAddressHeaders) {
+ private String getRemoteAddress(Request request) {
+ for (String header : getConnector(request).connectorConfig().accessLog().remoteAddressHeaders()) {
String value = request.getHeader(header);
if (value != null) return value;
}
return request.getRemoteAddr();
}
- private int getRemotePort(HttpServletRequest request) {
- for (String header : remotePortHeaders) {
+ private int getRemotePort(Request request) {
+ for (String header : getConnector(request).connectorConfig().accessLog().remotePortHeaders()) {
String value = request.getHeader(header);
if (value != null) {
OptionalInt maybePort = parsePort(value);
diff --git a/container-core/src/main/java/com/yahoo/jdisc/http/server/jetty/JettyHttpServer.java b/container-core/src/main/java/com/yahoo/jdisc/http/server/jetty/JettyHttpServer.java
index 3ebb65e7979..7d84ee6f8a3 100644
--- a/container-core/src/main/java/com/yahoo/jdisc/http/server/jetty/JettyHttpServer.java
+++ b/container-core/src/main/java/com/yahoo/jdisc/http/server/jetty/JettyHttpServer.java
@@ -68,7 +68,7 @@ public class JettyHttpServer extends AbstractServerProvider {
server = new Server();
server.setStopTimeout((long)(serverConfig.stopTimeout() * 1000.0));
- server.setRequestLog(new AccessLogRequestLog(requestLog, serverConfig.accessLog()));
+ server.setRequestLog(new AccessLogRequestLog(requestLog));
setupJmx(server, serverConfig);
configureJettyThreadpool(server, serverConfig);
JettyConnectionLogger connectionLogger = new JettyConnectionLogger(serverConfig.connectionLog(), connectionLog);