16
16
17
17
package org .springframework .web .filter ;
18
18
19
- import java .io .IOException ;
20
19
import java .nio .charset .StandardCharsets ;
21
20
22
21
import javax .servlet .FilterChain ;
23
- import javax .servlet .ServletException ;
24
22
import javax .servlet .ServletRequest ;
25
23
import javax .servlet .ServletResponse ;
26
24
import javax .servlet .http .HttpServletRequest ;
31
29
32
30
import org .springframework .mock .web .test .MockHttpServletRequest ;
33
31
import org .springframework .mock .web .test .MockHttpServletResponse ;
32
+ import org .springframework .mock .web .test .MockHttpSession ;
34
33
import org .springframework .util .FileCopyUtils ;
35
34
import org .springframework .web .util .ContentCachingRequestWrapper ;
36
35
import org .springframework .web .util .WebUtils ;
@@ -52,6 +51,72 @@ public void reset() {
52
51
filter = new MyRequestLoggingFilter ();
53
52
}
54
53
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
+
55
120
@ Test
56
121
public void method () throws Exception {
57
122
final MockHttpServletRequest request = new MockHttpServletRequest ("PATCH" , "/hotels" );
@@ -125,6 +190,61 @@ public void noQueryStringAvailable() throws Exception {
125
190
assertThat (filter .afterRequestMessage .contains ("/hotels]" )).isTrue ();
126
191
}
127
192
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
+
128
248
@ Test
129
249
public void headers () throws Exception {
130
250
final MockHttpServletRequest request = new MockHttpServletRequest ("POST" , "/hotels" );
@@ -237,7 +357,7 @@ protected void afterRequest(HttpServletRequest request, String message) {
237
357
private static class NoOpFilterChain implements FilterChain {
238
358
239
359
@ Override
240
- public void doFilter (ServletRequest request , ServletResponse response ) throws IOException , ServletException {
360
+ public void doFilter (ServletRequest request , ServletResponse response ) {
241
361
}
242
362
}
243
363
0 commit comments