@@ -262,6 +262,32 @@ public void loadDeferredTokenWhenDoesNotExistThenGeneratedAndSaved() {
262
262
assertThat (tokenCookie .isHttpOnly ()).isEqualTo (true );
263
263
}
264
264
265
+ @ Test
266
+ public void loadDeferredTokenWhenExistsAndNullSavedThenGeneratedAndSaved () {
267
+ CsrfToken generatedToken = this .repository .generateToken (this .request );
268
+ this .request
269
+ .setCookies (new Cookie (CookieCsrfTokenRepository .DEFAULT_CSRF_COOKIE_NAME , generatedToken .getToken ()));
270
+ this .repository .saveToken (null , this .request , this .response );
271
+ DeferredCsrfToken deferredCsrfToken = this .repository .loadDeferredToken (this .request , this .response );
272
+ CsrfToken csrfToken = deferredCsrfToken .get ();
273
+ assertThat (csrfToken ).isNotNull ();
274
+ assertThat (generatedToken ).isNotEqualTo (csrfToken );
275
+ assertThat (deferredCsrfToken .isGenerated ()).isTrue ();
276
+ }
277
+
278
+ @ Test
279
+ public void loadDeferredTokenWhenExistsAndNullSavedAndNonNullSavedThenLoaded () {
280
+ CsrfToken generatedToken = this .repository .generateToken (this .request );
281
+ this .request
282
+ .setCookies (new Cookie (CookieCsrfTokenRepository .DEFAULT_CSRF_COOKIE_NAME , generatedToken .getToken ()));
283
+ this .repository .saveToken (null , this .request , this .response );
284
+ this .repository .saveToken (generatedToken , this .request , this .response );
285
+ DeferredCsrfToken deferredCsrfToken = this .repository .loadDeferredToken (this .request , this .response );
286
+ CsrfToken csrfToken = deferredCsrfToken .get ();
287
+ assertThatCsrfToken (csrfToken ).isEqualTo (generatedToken );
288
+ assertThat (deferredCsrfToken .isGenerated ()).isFalse ();
289
+ }
290
+
265
291
@ Test
266
292
public void loadDeferredTokenWhenExistsThenLoaded () {
267
293
CsrfToken generatedToken = this .repository .generateToken (this .request );
0 commit comments