Skip to content

Commit dd041ce

Browse files
committed
Add tests for logging prefixes, suffixes, client, session & user
1 parent e9ddad0 commit dd041ce

File tree

1 file changed

+123
-3
lines changed

1 file changed

+123
-3
lines changed

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

Lines changed: 123 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,11 +16,9 @@
1616

1717
package org.springframework.web.filter;
1818

19-
import java.io.IOException;
2019
import java.nio.charset.StandardCharsets;
2120

2221
import javax.servlet.FilterChain;
23-
import javax.servlet.ServletException;
2422
import javax.servlet.ServletRequest;
2523
import javax.servlet.ServletResponse;
2624
import javax.servlet.http.HttpServletRequest;
@@ -31,6 +29,7 @@
3129

3230
import org.springframework.mock.web.test.MockHttpServletRequest;
3331
import org.springframework.mock.web.test.MockHttpServletResponse;
32+
import org.springframework.mock.web.test.MockHttpSession;
3433
import org.springframework.util.FileCopyUtils;
3534
import org.springframework.web.util.ContentCachingRequestWrapper;
3635
import org.springframework.web.util.WebUtils;
@@ -52,6 +51,72 @@ public void reset() {
5251
filter = new MyRequestLoggingFilter();
5352
}
5453

54+
@Test
55+
public void defaultPrefix() throws Exception {
56+
final MockHttpServletRequest request = new MockHttpServletRequest("POST", "/hotels");
57+
MockHttpServletResponse response = new MockHttpServletResponse();
58+
59+
FilterChain filterChain = new NoOpFilterChain();
60+
filter.doFilter(request, response, filterChain);
61+
62+
assertThat(filter.beforeRequestMessage).isNotNull();
63+
assertThat(filter.beforeRequestMessage.startsWith(AbstractRequestLoggingFilter.DEFAULT_BEFORE_MESSAGE_PREFIX)).isTrue();
64+
65+
assertThat(filter.afterRequestMessage).isNotNull();
66+
assertThat(filter.afterRequestMessage.startsWith(AbstractRequestLoggingFilter.DEFAULT_AFTER_MESSAGE_PREFIX)).isTrue();
67+
}
68+
69+
@Test
70+
public void customPrefix() throws Exception {
71+
final MockHttpServletRequest request = new MockHttpServletRequest("POST", "/hotels");
72+
MockHttpServletResponse response = new MockHttpServletResponse();
73+
74+
filter.setBeforeMessagePrefix("Before prefix: ");
75+
filter.setAfterMessagePrefix("After prefix: ");
76+
77+
FilterChain filterChain = new NoOpFilterChain();
78+
filter.doFilter(request, response, filterChain);
79+
80+
assertThat(filter.beforeRequestMessage).isNotNull();
81+
assertThat(filter.beforeRequestMessage.startsWith("Before prefix: ")).isTrue();
82+
83+
assertThat(filter.afterRequestMessage).isNotNull();
84+
assertThat(filter.afterRequestMessage.startsWith("After prefix: ")).isTrue();
85+
}
86+
87+
@Test
88+
public void defaultSuffix() throws Exception {
89+
final MockHttpServletRequest request = new MockHttpServletRequest("POST", "/hotels");
90+
MockHttpServletResponse response = new MockHttpServletResponse();
91+
92+
FilterChain filterChain = new NoOpFilterChain();
93+
filter.doFilter(request, response, filterChain);
94+
95+
assertThat(filter.beforeRequestMessage).isNotNull();
96+
assertThat(filter.beforeRequestMessage.endsWith(AbstractRequestLoggingFilter.DEFAULT_BEFORE_MESSAGE_SUFFIX)).isTrue();
97+
98+
assertThat(filter.afterRequestMessage).isNotNull();
99+
assertThat(filter.afterRequestMessage.endsWith(AbstractRequestLoggingFilter.DEFAULT_AFTER_MESSAGE_SUFFIX)).isTrue();
100+
}
101+
102+
@Test
103+
public void customSuffix() throws Exception {
104+
final MockHttpServletRequest request = new MockHttpServletRequest("POST", "/hotels");
105+
MockHttpServletResponse response = new MockHttpServletResponse();
106+
107+
filter.setBeforeMessageSuffix("}");
108+
filter.setAfterMessageSuffix(")");
109+
110+
FilterChain filterChain = new NoOpFilterChain();
111+
filter.doFilter(request, response, filterChain);
112+
113+
assertThat(filter.beforeRequestMessage).isNotNull();
114+
assertThat(filter.beforeRequestMessage.endsWith("}")).isTrue();
115+
116+
assertThat(filter.afterRequestMessage).isNotNull();
117+
assertThat(filter.afterRequestMessage.endsWith(")")).isTrue();
118+
}
119+
55120
@Test
56121
public void method() throws Exception {
57122
final MockHttpServletRequest request = new MockHttpServletRequest("PATCH", "/hotels");
@@ -125,6 +190,61 @@ public void noQueryStringAvailable() throws Exception {
125190
assertThat(filter.afterRequestMessage.contains("/hotels]")).isTrue();
126191
}
127192

193+
@Test
194+
public void client() throws Exception {
195+
filter.setIncludeClientInfo(true);
196+
197+
MockHttpServletRequest request = new MockHttpServletRequest("POST", "/hotels");
198+
request.setRemoteAddr("4.2.2.2");
199+
MockHttpServletResponse response = new MockHttpServletResponse();
200+
201+
FilterChain filterChain = new NoOpFilterChain();
202+
filter.doFilter(request, response, filterChain);
203+
204+
assertThat(filter.beforeRequestMessage).isNotNull();
205+
assertThat(filter.beforeRequestMessage.contains("client=4.2.2.2")).isTrue();
206+
207+
assertThat(filter.afterRequestMessage).isNotNull();
208+
assertThat(filter.afterRequestMessage.contains("client=4.2.2.2")).isTrue();
209+
}
210+
211+
@Test
212+
public void session() throws Exception {
213+
filter.setIncludeClientInfo(true);
214+
215+
MockHttpServletRequest request = new MockHttpServletRequest("POST", "/hotels");
216+
MockHttpSession session = new MockHttpSession(null, "42");
217+
request.setSession(session);
218+
MockHttpServletResponse response = new MockHttpServletResponse();
219+
220+
FilterChain filterChain = new NoOpFilterChain();
221+
filter.doFilter(request, response, filterChain);
222+
223+
assertThat(filter.beforeRequestMessage).isNotNull();
224+
assertThat(filter.beforeRequestMessage.contains("session=42")).isTrue();
225+
226+
assertThat(filter.afterRequestMessage).isNotNull();
227+
assertThat(filter.afterRequestMessage.contains("session=42")).isTrue();
228+
}
229+
230+
@Test
231+
public void user() throws Exception {
232+
filter.setIncludeClientInfo(true);
233+
234+
MockHttpServletRequest request = new MockHttpServletRequest("POST", "/hotels");
235+
request.setRemoteUser("Arthur");
236+
MockHttpServletResponse response = new MockHttpServletResponse();
237+
238+
FilterChain filterChain = new NoOpFilterChain();
239+
filter.doFilter(request, response, filterChain);
240+
241+
assertThat(filter.beforeRequestMessage).isNotNull();
242+
assertThat(filter.beforeRequestMessage.contains("user=Arthur")).isTrue();
243+
244+
assertThat(filter.afterRequestMessage).isNotNull();
245+
assertThat(filter.afterRequestMessage.contains("user=Arthur")).isTrue();
246+
}
247+
128248
@Test
129249
public void headers() throws Exception {
130250
final MockHttpServletRequest request = new MockHttpServletRequest("POST", "/hotels");
@@ -237,7 +357,7 @@ protected void afterRequest(HttpServletRequest request, String message) {
237357
private static class NoOpFilterChain implements FilterChain {
238358

239359
@Override
240-
public void doFilter(ServletRequest request, ServletResponse response) throws IOException, ServletException {
360+
public void doFilter(ServletRequest request, ServletResponse response) {
241361
}
242362
}
243363

0 commit comments

Comments
 (0)