diff --git a/web/src/main/java/org/springframework/security/web/server/csrf/CsrfWebFilter.java b/web/src/main/java/org/springframework/security/web/server/csrf/CsrfWebFilter.java index 46ffb2cafb..a42890a106 100644 --- a/web/src/main/java/org/springframework/security/web/server/csrf/CsrfWebFilter.java +++ b/web/src/main/java/org/springframework/security/web/server/csrf/CsrfWebFilter.java @@ -130,7 +130,7 @@ public class CsrfWebFilter implements WebFilter { private Mono validateToken(ServerWebExchange exchange) { return this.csrfTokenRepository.loadToken(exchange) .switchIfEmpty(Mono - .defer(() -> Mono.error(new CsrfException("CSRF Token has been associated to this client")))) + .defer(() -> Mono.error(new CsrfException("An expected CSRF token cannot be found")))) .filterWhen((expected) -> containsValidCsrfToken(exchange, expected)) .switchIfEmpty(Mono.defer(() -> Mono.error(new CsrfException("Invalid CSRF Token")))).then(); } diff --git a/web/src/test/java/org/springframework/security/web/server/csrf/CsrfWebFilterTests.java b/web/src/test/java/org/springframework/security/web/server/csrf/CsrfWebFilterTests.java index 3d26430c07..92fc45a63e 100644 --- a/web/src/test/java/org/springframework/security/web/server/csrf/CsrfWebFilterTests.java +++ b/web/src/test/java/org/springframework/security/web/server/csrf/CsrfWebFilterTests.java @@ -64,7 +64,7 @@ public class CsrfWebFilterTests { private MockServerWebExchange get = MockServerWebExchange.from(MockServerHttpRequest.get("/")); - private ServerWebExchange post = MockServerWebExchange.from(MockServerHttpRequest.post("/")); + private MockServerWebExchange post = MockServerWebExchange.from(MockServerHttpRequest.post("/")); @Test public void filterWhenGetThenSessionNotCreatedAndChainContinues() { @@ -91,6 +91,8 @@ public class CsrfWebFilterTests { Mono result = this.csrfFilter.filter(this.post, this.chain); StepVerifier.create(result).verifyComplete(); assertThat(this.post.getResponse().getStatusCode()).isEqualTo(HttpStatus.FORBIDDEN); + StepVerifier.create(this.post.getResponse().getBodyAsString()) + .assertNext(b -> assertThat(b).contains("An expected CSRF token cannot be found")); } @Test