diff options
author | Bjørn Christian Seime <bjorncs@oath.com> | 2018-01-30 14:26:07 +0100 |
---|---|---|
committer | Bjørn Christian Seime <bjorncs@oath.com> | 2018-02-01 10:33:22 +0100 |
commit | 7eb8457fff1580adf1df06cca66a3fcf95e58c66 (patch) | |
tree | 7bef2b3c337df2e5c1e1c9d644352c873aecb0da | |
parent | 5b403af2229c4158811bf77ec85c9c2027fb49b7 (diff) |
Don't use getURI in json and vespa access log format
3 files changed, 13 insertions, 20 deletions
diff --git a/container-accesslogging/src/main/java/com/yahoo/container/logging/JSONFormatter.java b/container-accesslogging/src/main/java/com/yahoo/container/logging/JSONFormatter.java index 1bbc08aa0a7..adadd0b1414 100644 --- a/container-accesslogging/src/main/java/com/yahoo/container/logging/JSONFormatter.java +++ b/container-accesslogging/src/main/java/com/yahoo/container/logging/JSONFormatter.java @@ -10,7 +10,6 @@ import java.io.ByteArrayOutputStream; import java.io.IOException; import java.math.BigDecimal; import java.math.RoundingMode; -import java.net.URI; import java.security.Principal; import java.util.List; import java.util.Map; @@ -53,7 +52,7 @@ public class JSONFormatter { generator.writeNumberField("responsesize", accessLogEntry.getReturnedContentSize()); generator.writeNumberField("code", accessLogEntry.getStatusCode()); generator.writeStringField("method", accessLogEntry.getHttpMethod()); - generator.writeStringField("uri", getNormalizedURI(accessLogEntry.getURI())); + generator.writeStringField("uri", getNormalizedURI(accessLogEntry.getRawPath(), accessLogEntry.getRawQuery().orElse(null))); generator.writeStringField("version", accessLogEntry.getHttpVersion()); generator.writeStringField("agent", accessLogEntry.getUserAgent()); generator.writeStringField("host", accessLogEntry.getHostString()); @@ -179,14 +178,8 @@ public class JSONFormatter { return duration.setScale(3, BigDecimal.ROUND_HALF_UP); } - private String getNormalizedURI(URI uri) { - URI normalizedURI = uri.normalize(); - String uriString = normalizedURI.getPath(); - if (normalizedURI.getRawQuery() != null) { - uriString = uriString + "?" + normalizedURI.getRawQuery(); - } - - return uriString; + private static String getNormalizedURI(String rawPath, String rawQuery) { + return rawQuery != null ? rawPath + "?" + rawQuery : rawPath; } } diff --git a/container-accesslogging/src/main/java/com/yahoo/container/logging/VespaAccessLog.java b/container-accesslogging/src/main/java/com/yahoo/container/logging/VespaAccessLog.java index b8e5bbb2461..3a0713142df 100644 --- a/container-accesslogging/src/main/java/com/yahoo/container/logging/VespaAccessLog.java +++ b/container-accesslogging/src/main/java/com/yahoo/container/logging/VespaAccessLog.java @@ -2,17 +2,15 @@ package com.yahoo.container.logging; import com.yahoo.container.core.AccessLogConfig; -import com.yahoo.net.UriTools; -import java.net.URI; import java.text.SimpleDateFormat; import java.util.Date; import java.util.TimeZone; import java.util.logging.Level; /** - * @author <a href="mailto:borud@yahoo-inc.com">Bjorn Borud</a> - * @author bakksjo + * @author Bjorn Borud + * @author Oyvind Bakksjo */ public final class VespaAccessLog implements AccessLogInterface { @@ -35,9 +33,8 @@ public final class VespaAccessLog implements AccessLogInterface { return dateFormat.format(date); } - private String getRequest(final String httpMethod, final URI uri, final String httpVersion) { - final URI normalizedUri = uri.normalize(); - return httpMethod + " " + UriTools.rawRequest(normalizedUri) + " " + httpVersion; + private String getRequest(final String httpMethod, final String rawPath, final String rawQuery, final String httpVersion) { + return httpMethod + " " + (rawQuery != null ? rawPath + "?" + rawQuery : rawPath) + " " + httpVersion; } private String getUser(String user) { @@ -102,7 +99,8 @@ public final class VespaAccessLog implements AccessLogInterface { accessLogEntry.getUser(), getRequest( accessLogEntry.getHttpMethod(), - accessLogEntry.getURI(), + accessLogEntry.getRawPath(), + accessLogEntry.getRawQuery().orElse(null), accessLogEntry.getHttpVersion()), accessLogEntry.getReferer(), accessLogEntry.getUserAgent(), diff --git a/container-accesslogging/src/test/java/com/yahoo/container/logging/JSONLogTestCase.java b/container-accesslogging/src/test/java/com/yahoo/container/logging/JSONLogTestCase.java index ae27d7b1814..747cb2f83cb 100644 --- a/container-accesslogging/src/test/java/com/yahoo/container/logging/JSONLogTestCase.java +++ b/container-accesslogging/src/test/java/com/yahoo/container/logging/JSONLogTestCase.java @@ -15,7 +15,8 @@ public class JSONLogTestCase extends junit.framework.TestCase { private AccessLogEntry newAccessLogEntry(final String query) { final AccessLogEntry entry = new AccessLogEntry(); - entry.setURI(newQueryUri(query)); + entry.setRawQuery("query="+query); + entry.setRawPath(""); entry.setIpV4Address(ipAddress); entry.setHttpMethod("GET"); entry.setHttpVersion("HTTP/1.1"); @@ -156,7 +157,8 @@ public class JSONLogTestCase extends junit.framework.TestCase { public void test_useragent_with_quotes() throws Exception { final AccessLogEntry entry = new AccessLogEntry(); - entry.setURI(newQueryUri("test")); + entry.setRawQuery("query=test"); + entry.setRawPath(""); entry.setIpV4Address(ipAddress); entry.setHttpMethod("GET"); entry.setHttpVersion("HTTP/1.1"); |