Skip to content

Commit 4b1bcb4

Browse files
committed
Add test for a fully logged request
1 parent ae469f4 commit 4b1bcb4

File tree

1 file changed

+45
-0
lines changed

1 file changed

+45
-0
lines changed

spring-web/src/test/java/org/springframework/web/filter/RequestLoggingFilterTests.java

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -291,6 +291,51 @@ public void payloadMaxLength() throws Exception {
291291
assertThat(filter.afterRequestMessage).doesNotContain("Hello World");
292292
}
293293

294+
@Test
295+
public void allOptions() throws Exception {
296+
filter.setIncludeQueryString(true);
297+
filter.setIncludeClientInfo(true);
298+
filter.setIncludeHeaders(true);
299+
filter.setIncludePayload(true);
300+
301+
MockHttpServletRequest request = new MockHttpServletRequest("POST", "/hotels");
302+
request.setQueryString("booking=42");
303+
request.setRemoteAddr("4.2.2.2");
304+
request.setSession(new MockHttpSession(null, "42"));
305+
request.setRemoteUser("Arthur");
306+
request.setContentType("application/json");
307+
String requestBody = "{\"msg\": \"Hello World\"}";
308+
request.setContent(requestBody.getBytes(StandardCharsets.UTF_8));
309+
MockHttpServletResponse response = new MockHttpServletResponse();
310+
311+
FilterChain filterChain = (filterRequest, filterResponse) -> {
312+
((HttpServletResponse) filterResponse).setStatus(HttpServletResponse.SC_OK);
313+
String buf = FileCopyUtils.copyToString(filterRequest.getReader());
314+
assertThat(buf).isEqualTo(requestBody);
315+
};
316+
317+
filter.doFilter(request, response, filterChain);
318+
319+
assertThat(filter.beforeRequestMessage)
320+
.isEqualTo("Before request ["
321+
+ "POST /hotels?booking=42"
322+
+ ", client=4.2.2.2"
323+
+ ", session=42"
324+
+ ", user=Arthur"
325+
+ ", headers=[Content-Type:\"application/json;charset=ISO-8859-1\", Content-Length:\"22\"]"
326+
+ "]");
327+
328+
assertThat(filter.afterRequestMessage)
329+
.isEqualTo("After request ["
330+
+ "POST /hotels?booking=42"
331+
+ ", client=4.2.2.2"
332+
+ ", session=42"
333+
+ ", user=Arthur"
334+
+ ", headers=[Content-Type:\"application/json;charset=ISO-8859-1\", Content-Length:\"22\"]"
335+
+ ", payload={\"msg\": \"Hello World\"}"
336+
+ "]");
337+
}
338+
294339

295340
private static class MyRequestLoggingFilter extends AbstractRequestLoggingFilter {
296341

0 commit comments

Comments
 (0)