aboutsummaryrefslogtreecommitdiffstats
path: root/jdisc_http_service
diff options
context:
space:
mode:
authorBjørn Christian Seime <bjorncs@oath.com>2018-01-30 13:57:10 +0100
committerBjørn Christian Seime <bjorncs@oath.com>2018-02-01 10:33:22 +0100
commit5b403af2229c4158811bf77ec85c9c2027fb49b7 (patch)
treec915a519320e07b1520c239f0c6b4337d51c66c5 /jdisc_http_service
parent8aec10e053614a2cdc6459eaca41913a0dfe306f (diff)
Copy raw path and query from request to access log entry
Diffstat (limited to 'jdisc_http_service')
-rw-r--r--jdisc_http_service/src/main/java/com/yahoo/jdisc/http/server/jetty/AccessLogRequestLog.java6
-rw-r--r--jdisc_http_service/src/test/java/com/yahoo/jdisc/http/server/jetty/AccessLogRequestLogTest.java18
2 files changed, 24 insertions, 0 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 35e8276310d..0491e200308 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
@@ -85,6 +85,12 @@ public class AccessLogRequestLog extends AbstractLifeCycle implements RequestLog
final AccessLogEntry accessLogEntry) {
setUriFromRequest(request, accessLogEntry);
+ accessLogEntry.setRawPath(request.getRequestURI());
+ String queryString = request.getQueryString();
+ if (queryString != null) {
+ accessLogEntry.setRawQuery(queryString);
+ }
+
final String remoteAddress = getRemoteAddress(request);
final int remotePort = getRemotePort(request);
final String peerAddress = request.getRemoteAddr();
diff --git a/jdisc_http_service/src/test/java/com/yahoo/jdisc/http/server/jetty/AccessLogRequestLogTest.java b/jdisc_http_service/src/test/java/com/yahoo/jdisc/http/server/jetty/AccessLogRequestLogTest.java
index cf08346d4fb..cdcd2d76883 100644
--- a/jdisc_http_service/src/test/java/com/yahoo/jdisc/http/server/jetty/AccessLogRequestLogTest.java
+++ b/jdisc_http_service/src/test/java/com/yahoo/jdisc/http/server/jetty/AccessLogRequestLogTest.java
@@ -7,6 +7,8 @@ import org.testng.annotations.Test;
import javax.servlet.http.HttpServletRequest;
+import java.util.Optional;
+
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.CoreMatchers.not;
import static org.hamcrest.CoreMatchers.nullValue;
@@ -72,4 +74,20 @@ public class AccessLogRequestLogTest {
assertThat(accessLogEntry.getURI().toString(), is("/search/?q=%25%252"));
}
+ @Test
+ public void raw_path_and_query_are_set_from_request() {
+ HttpServletRequest httpServletRequest = mock(HttpServletRequest.class);
+ String rawPath = "//search/";
+ when(httpServletRequest.getRequestURI()).thenReturn(rawPath);
+ String rawQuery = "q=%%2";
+ when(httpServletRequest.getQueryString()).thenReturn(rawQuery);
+
+ AccessLogEntry accessLogEntry = new AccessLogEntry();
+ AccessLogRequestLog.populateAccessLogEntryFromHttpServletRequest(httpServletRequest, accessLogEntry);
+ assertThat(accessLogEntry.getRawPath(), is(rawPath));
+ Optional<String> actualRawQuery = accessLogEntry.getRawQuery();
+ assertThat(actualRawQuery.isPresent(), is(true));
+ assertThat(actualRawQuery.get(), is(rawQuery));
+ }
+
}