@@ -75,6 +75,8 @@ public class CsrfFilterTests {
75
75
76
76
private CsrfToken token ;
77
77
78
+ private String csrfAttrName = "_csrf" ;
79
+
78
80
private CsrfFilter filter ;
79
81
80
82
@ BeforeEach
@@ -108,7 +110,7 @@ public void doFilterDoesNotSaveCsrfTokenUntilAccessed() throws ServletException,
108
110
given (this .requestMatcher .matches (this .request )).willReturn (false );
109
111
given (this .tokenRepository .generateToken (this .request )).willReturn (this .token );
110
112
this .filter .doFilter (this .request , this .response , this .filterChain );
111
- CsrfToken attrToken = (CsrfToken ) this .request .getAttribute (this .token . getParameterName () );
113
+ CsrfToken attrToken = (CsrfToken ) this .request .getAttribute (this .csrfAttrName );
112
114
// no CsrfToken should have been saved yet
113
115
verify (this .tokenRepository , times (0 )).saveToken (any (CsrfToken .class ), any (HttpServletRequest .class ),
114
116
any (HttpServletResponse .class ));
@@ -125,7 +127,7 @@ public void doFilterAccessDeniedNoTokenPresent() throws ServletException, IOExce
125
127
given (this .requestMatcher .matches (this .request )).willReturn (true );
126
128
given (this .tokenRepository .loadToken (this .request )).willReturn (this .token );
127
129
this .filter .doFilter (this .request , this .response , this .filterChain );
128
- assertThat (this .request .getAttribute (this .token . getParameterName () )).isEqualTo (this .token );
130
+ assertThat (this .request .getAttribute (this .csrfAttrName )).isEqualTo (this .token );
129
131
assertThat (this .request .getAttribute (CsrfToken .class .getName ())).isEqualTo (this .token );
130
132
verify (this .deniedHandler ).handle (eq (this .request ), eq (this .response ), any (InvalidCsrfTokenException .class ));
131
133
verifyNoMoreInteractions (this .filterChain );
@@ -137,7 +139,7 @@ public void doFilterAccessDeniedIncorrectTokenPresent() throws ServletException,
137
139
given (this .tokenRepository .loadToken (this .request )).willReturn (this .token );
138
140
this .request .setParameter (this .token .getParameterName (), this .token .getToken () + " INVALID" );
139
141
this .filter .doFilter (this .request , this .response , this .filterChain );
140
- assertThat (this .request .getAttribute (this .token . getParameterName () )).isEqualTo (this .token );
142
+ assertThat (this .request .getAttribute (this .csrfAttrName )).isEqualTo (this .token );
141
143
assertThat (this .request .getAttribute (CsrfToken .class .getName ())).isEqualTo (this .token );
142
144
verify (this .deniedHandler ).handle (eq (this .request ), eq (this .response ), any (InvalidCsrfTokenException .class ));
143
145
verifyNoMoreInteractions (this .filterChain );
@@ -149,7 +151,7 @@ public void doFilterAccessDeniedIncorrectTokenPresentHeader() throws ServletExce
149
151
given (this .tokenRepository .loadToken (this .request )).willReturn (this .token );
150
152
this .request .addHeader (this .token .getHeaderName (), this .token .getToken () + " INVALID" );
151
153
this .filter .doFilter (this .request , this .response , this .filterChain );
152
- assertThat (this .request .getAttribute (this .token . getParameterName () )).isEqualTo (this .token );
154
+ assertThat (this .request .getAttribute (this .csrfAttrName )).isEqualTo (this .token );
153
155
assertThat (this .request .getAttribute (CsrfToken .class .getName ())).isEqualTo (this .token );
154
156
verify (this .deniedHandler ).handle (eq (this .request ), eq (this .response ), any (InvalidCsrfTokenException .class ));
155
157
verifyNoMoreInteractions (this .filterChain );
@@ -163,7 +165,7 @@ public void doFilterAccessDeniedIncorrectTokenPresentHeaderPreferredOverParamete
163
165
this .request .setParameter (this .token .getParameterName (), this .token .getToken ());
164
166
this .request .addHeader (this .token .getHeaderName (), this .token .getToken () + " INVALID" );
165
167
this .filter .doFilter (this .request , this .response , this .filterChain );
166
- assertThat (this .request .getAttribute (this .token . getParameterName () )).isEqualTo (this .token );
168
+ assertThat (this .request .getAttribute (this .csrfAttrName )).isEqualTo (this .token );
167
169
assertThat (this .request .getAttribute (CsrfToken .class .getName ())).isEqualTo (this .token );
168
170
verify (this .deniedHandler ).handle (eq (this .request ), eq (this .response ), any (InvalidCsrfTokenException .class ));
169
171
verifyNoMoreInteractions (this .filterChain );
@@ -174,7 +176,7 @@ public void doFilterNotCsrfRequestExistingToken() throws ServletException, IOExc
174
176
given (this .requestMatcher .matches (this .request )).willReturn (false );
175
177
given (this .tokenRepository .loadToken (this .request )).willReturn (this .token );
176
178
this .filter .doFilter (this .request , this .response , this .filterChain );
177
- assertThat (this .request .getAttribute (this .token . getParameterName () )).isEqualTo (this .token );
179
+ assertThat (this .request .getAttribute (this .csrfAttrName )).isEqualTo (this .token );
178
180
assertThat (this .request .getAttribute (CsrfToken .class .getName ())).isEqualTo (this .token );
179
181
verify (this .filterChain ).doFilter (this .request , this .response );
180
182
verifyNoMoreInteractions (this .deniedHandler );
@@ -185,7 +187,7 @@ public void doFilterNotCsrfRequestGenerateToken() throws ServletException, IOExc
185
187
given (this .requestMatcher .matches (this .request )).willReturn (false );
186
188
given (this .tokenRepository .generateToken (this .request )).willReturn (this .token );
187
189
this .filter .doFilter (this .request , this .response , this .filterChain );
188
- assertToken (this .request .getAttribute (this .token . getParameterName () )).isEqualTo (this .token );
190
+ assertToken (this .request .getAttribute (this .csrfAttrName )).isEqualTo (this .token );
189
191
assertToken (this .request .getAttribute (CsrfToken .class .getName ())).isEqualTo (this .token );
190
192
verify (this .filterChain ).doFilter (this .request , this .response );
191
193
verifyNoMoreInteractions (this .deniedHandler );
@@ -197,7 +199,7 @@ public void doFilterIsCsrfRequestExistingTokenHeader() throws ServletException,
197
199
given (this .tokenRepository .loadToken (this .request )).willReturn (this .token );
198
200
this .request .addHeader (this .token .getHeaderName (), this .token .getToken ());
199
201
this .filter .doFilter (this .request , this .response , this .filterChain );
200
- assertThat (this .request .getAttribute (this .token . getParameterName () )).isEqualTo (this .token );
202
+ assertThat (this .request .getAttribute (this .csrfAttrName )).isEqualTo (this .token );
201
203
assertThat (this .request .getAttribute (CsrfToken .class .getName ())).isEqualTo (this .token );
202
204
verify (this .filterChain ).doFilter (this .request , this .response );
203
205
verifyNoMoreInteractions (this .deniedHandler );
@@ -211,7 +213,7 @@ public void doFilterIsCsrfRequestExistingTokenHeaderPreferredOverInvalidParam()
211
213
this .request .setParameter (this .token .getParameterName (), this .token .getToken () + " INVALID" );
212
214
this .request .addHeader (this .token .getHeaderName (), this .token .getToken ());
213
215
this .filter .doFilter (this .request , this .response , this .filterChain );
214
- assertThat (this .request .getAttribute (this .token . getParameterName () )).isEqualTo (this .token );
216
+ assertThat (this .request .getAttribute (this .csrfAttrName )).isEqualTo (this .token );
215
217
assertThat (this .request .getAttribute (CsrfToken .class .getName ())).isEqualTo (this .token );
216
218
verify (this .filterChain ).doFilter (this .request , this .response );
217
219
verifyNoMoreInteractions (this .deniedHandler );
@@ -223,7 +225,7 @@ public void doFilterIsCsrfRequestExistingToken() throws ServletException, IOExce
223
225
given (this .tokenRepository .loadToken (this .request )).willReturn (this .token );
224
226
this .request .setParameter (this .token .getParameterName (), this .token .getToken ());
225
227
this .filter .doFilter (this .request , this .response , this .filterChain );
226
- assertThat (this .request .getAttribute (this .token . getParameterName () )).isEqualTo (this .token );
228
+ assertThat (this .request .getAttribute (this .csrfAttrName )).isEqualTo (this .token );
227
229
assertThat (this .request .getAttribute (CsrfToken .class .getName ())).isEqualTo (this .token );
228
230
verify (this .filterChain ).doFilter (this .request , this .response );
229
231
verifyNoMoreInteractions (this .deniedHandler );
@@ -237,7 +239,7 @@ public void doFilterIsCsrfRequestGenerateToken() throws ServletException, IOExce
237
239
given (this .tokenRepository .generateToken (this .request )).willReturn (this .token );
238
240
this .request .setParameter (this .token .getParameterName (), this .token .getToken ());
239
241
this .filter .doFilter (this .request , this .response , this .filterChain );
240
- assertToken (this .request .getAttribute (this .token . getParameterName () )).isEqualTo (this .token );
242
+ assertToken (this .request .getAttribute (this .csrfAttrName )).isEqualTo (this .token );
241
243
assertToken (this .request .getAttribute (CsrfToken .class .getName ())).isEqualTo (this .token );
242
244
// LazyCsrfTokenRepository requires the response as an attribute
243
245
assertThat (this .request .getAttribute (HttpServletResponse .class .getName ())).isEqualTo (this .response );
@@ -303,7 +305,7 @@ public void doFilterDefaultAccessDenied() throws ServletException, IOException {
303
305
given (this .requestMatcher .matches (this .request )).willReturn (true );
304
306
given (this .tokenRepository .loadToken (this .request )).willReturn (this .token );
305
307
this .filter .doFilter (this .request , this .response , this .filterChain );
306
- assertThat (this .request .getAttribute (this .token . getParameterName () )).isEqualTo (this .token );
308
+ assertThat (this .request .getAttribute (this .csrfAttrName )).isEqualTo (this .token );
307
309
assertThat (this .request .getAttribute (CsrfToken .class .getName ())).isEqualTo (this .token );
308
310
assertThat (this .response .getStatus ()).isEqualTo (HttpServletResponse .SC_FORBIDDEN );
309
311
verifyNoMoreInteractions (this .filterChain );
0 commit comments