diff options
author | Bjørn Christian Seime <bjorncs@oath.com> | 2018-01-30 13:57:10 +0100 |
---|---|---|
committer | Bjørn Christian Seime <bjorncs@oath.com> | 2018-02-01 10:33:22 +0100 |
commit | 5b403af2229c4158811bf77ec85c9c2027fb49b7 (patch) | |
tree | c915a519320e07b1520c239f0c6b4337d51c66c5 /jdisc_http_service | |
parent | 8aec10e053614a2cdc6459eaca41913a0dfe306f (diff) |
Copy raw path and query from request to access log entry
Diffstat (limited to 'jdisc_http_service')
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)); + } + } |