From 7622826b69438db6ec3fb6d3aef82bb632577dfa Mon Sep 17 00:00:00 2001 From: Rob Winch Date: Tue, 7 Nov 2017 21:59:47 -0600 Subject: [PATCH] WebSessionServerCsrfTokenRepository saves on getToken Fixes gh-4801 --- .../config/web/server/FormLoginTests.java | 10 +-- .../web/server/csrf/CsrfWebFilter.java | 11 ++- .../web/server/csrf/DefaultCsrfToken.java | 24 +++++++ .../WebSessionServerCsrfTokenRepository.java | 68 ++++++++++++++++++- .../ui/LoginPageGeneratingWebFilter.java | 5 +- .../ui/LogoutPageGeneratingWebFilter.java | 5 +- ...SessionServerCsrfTokenRepositoryTests.java | 40 +++++------ 7 files changed, 123 insertions(+), 40 deletions(-) diff --git a/config/src/test/java/org/springframework/security/config/web/server/FormLoginTests.java b/config/src/test/java/org/springframework/security/config/web/server/FormLoginTests.java index 2d24c70328..1b8b8f6c7d 100644 --- a/config/src/test/java/org/springframework/security/config/web/server/FormLoginTests.java +++ b/config/src/test/java/org/springframework/security/config/web/server/FormLoginTests.java @@ -316,9 +316,9 @@ public class FormLoginTests { public static class CustomLoginPageController { @ResponseBody @GetMapping("/login") - public Mono login(ServerWebExchange exchange) { - Mono token = exchange.getAttribute(CsrfToken.class.getName()); - return token.map(t -> + public String login(ServerWebExchange exchange) { + CsrfToken token = exchange.getAttribute(CsrfToken.class.getName()); + return "\n" + "\n" + " \n" @@ -340,12 +340,12 @@ public class FormLoginTests { + " Password\n" + " \n" + "