Skip to content

Commit 61b75bb

Browse files
committed
Fix CsrfWebFilter error message when expected CSRF not found
Closes gh-9337
1 parent 429caea commit 61b75bb

File tree

2 files changed

+4
-2
lines changed

2 files changed

+4
-2
lines changed

web/src/main/java/org/springframework/security/web/server/csrf/CsrfWebFilter.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -130,7 +130,7 @@ public static void skipExchange(ServerWebExchange exchange) {
130130
private Mono<Void> validateToken(ServerWebExchange exchange) {
131131
return this.csrfTokenRepository.loadToken(exchange)
132132
.switchIfEmpty(Mono
133-
.defer(() -> Mono.error(new CsrfException("CSRF Token has been associated to this client"))))
133+
.defer(() -> Mono.error(new CsrfException("An expected CSRF token cannot be found"))))
134134
.filterWhen((expected) -> containsValidCsrfToken(exchange, expected))
135135
.switchIfEmpty(Mono.defer(() -> Mono.error(new CsrfException("Invalid CSRF Token")))).then();
136136
}

web/src/test/java/org/springframework/security/web/server/csrf/CsrfWebFilterTests.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ public class CsrfWebFilterTests {
6464

6565
private MockServerWebExchange get = MockServerWebExchange.from(MockServerHttpRequest.get("/"));
6666

67-
private ServerWebExchange post = MockServerWebExchange.from(MockServerHttpRequest.post("/"));
67+
private MockServerWebExchange post = MockServerWebExchange.from(MockServerHttpRequest.post("/"));
6868

6969
@Test
7070
public void filterWhenGetThenSessionNotCreatedAndChainContinues() {
@@ -91,6 +91,8 @@ public void filterWhenPostAndEstablishedCsrfTokenAndRequestMissingTokenThenCsrfE
9191
Mono<Void> result = this.csrfFilter.filter(this.post, this.chain);
9292
StepVerifier.create(result).verifyComplete();
9393
assertThat(this.post.getResponse().getStatusCode()).isEqualTo(HttpStatus.FORBIDDEN);
94+
StepVerifier.create(this.post.getResponse().getBodyAsString())
95+
.assertNext(b -> assertThat(b).contains("An expected CSRF token cannot be found"));
9496
}
9597

9698
@Test

0 commit comments

Comments
 (0)