aboutsummaryrefslogtreecommitdiffstats
path: root/container-accesslogging
diff options
context:
space:
mode:
authorBjørn Christian Seime <bjorncs@oath.com>2018-01-30 14:26:07 +0100
committerBjørn Christian Seime <bjorncs@oath.com>2018-02-01 10:33:22 +0100
commit7eb8457fff1580adf1df06cca66a3fcf95e58c66 (patch)
tree7bef2b3c337df2e5c1e1c9d644352c873aecb0da /container-accesslogging
parent5b403af2229c4158811bf77ec85c9c2027fb49b7 (diff)
Don't use getURI in json and vespa access log format
Diffstat (limited to 'container-accesslogging')
-rw-r--r--container-accesslogging/src/main/java/com/yahoo/container/logging/JSONFormatter.java13
-rw-r--r--container-accesslogging/src/main/java/com/yahoo/container/logging/VespaAccessLog.java14
-rw-r--r--container-accesslogging/src/test/java/com/yahoo/container/logging/JSONLogTestCase.java6
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");