aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBjørn Christian Seime <bjorncs@verizonmedia.com>2020-07-08 14:34:53 +0200
committerGitHub <noreply@github.com>2020-07-08 14:34:53 +0200
commite37a3a286064cb050a9ef36600c978bf39348a98 (patch)
tree62835fb4173c96e420413941f2ded62f85acea84
parentac0e69ad1f86c7452c921dc3e19de09b296d2d5e (diff)
parent0089efd575d71c115553b8b5a4259623ce6eef3f (diff)
Merge pull request #13834 from vespa-engine/bjorncs/jdisc-access-logging
Don't assume remote port header contains a valid port number
-rw-r--r--jdisc_http_service/src/main/java/com/yahoo/jdisc/http/server/jetty/AccessLogRequestLog.java10
1 files changed, 9 insertions, 1 deletions
diff --git a/jdisc_http_service/src/main/java/com/yahoo/jdisc/http/server/jetty/AccessLogRequestLog.java b/jdisc_http_service/src/main/java/com/yahoo/jdisc/http/server/jetty/AccessLogRequestLog.java
index d8b649c9db8..53d775d4349 100644
--- a/jdisc_http_service/src/main/java/com/yahoo/jdisc/http/server/jetty/AccessLogRequestLog.java
+++ b/jdisc_http_service/src/main/java/com/yahoo/jdisc/http/server/jetty/AccessLogRequestLog.java
@@ -132,7 +132,15 @@ public class AccessLogRequestLog extends AbstractLifeCycle implements RequestLog
private static int getRemotePort(final HttpServletRequest request) {
return Optional.ofNullable(request.getHeader(HEADER_NAME_X_FORWARDED_PORT))
.or(() -> Optional.ofNullable(request.getHeader(HEADER_NAME_Y_RP)))
- .map(Integer::valueOf)
+ .flatMap(AccessLogRequestLog::parsePort)
.orElseGet(request::getRemotePort);
}
+
+ private static Optional<Integer> parsePort(String port) {
+ try {
+ return Optional.of(Integer.valueOf(port));
+ } catch (IllegalArgumentException e) {
+ return Optional.empty();
+ }
+ }
}