1
0
mirror of synced 2026-08-04 09:17:02 +00:00

CookieServerCsrfTokenRepository fails when cookie is null/empty

The CookieServerCsrfTokenRepository fails with an IllegalArgumentException
 when a cookie is present but the value is null or empty.

Fixes gh-5315
This commit is contained in:
Eric Deandrea
2018-05-07 13:29:16 -04:00
committed by Rob Winch
parent 9b42831c70
commit b3c5bfe4db
2 changed files with 30 additions and 9 deletions
@@ -87,7 +87,7 @@ public final class CookieServerCsrfTokenRepository implements ServerCsrfTokenRep
public Mono<CsrfToken> loadToken(ServerWebExchange exchange) {
return Mono.fromCallable(() -> {
HttpCookie csrfCookie = exchange.getRequest().getCookies().getFirst(this.cookieName);
if (csrfCookie == null) {
if ((csrfCookie == null) || !StringUtils.hasText(csrfCookie.getValue())) {
return null;
}
return createCsrfToken(csrfCookie.getValue());
@@ -123,7 +123,6 @@ public final class CookieServerCsrfTokenRepository implements ServerCsrfTokenRep
/**
* Sets the header name
* @param headerName The header name
* @return This instance
*/
public void setHeaderName(String headerName) {
Assert.hasLength(headerName, "headerName can't be null");
@@ -133,7 +132,6 @@ public final class CookieServerCsrfTokenRepository implements ServerCsrfTokenRep
/**
* Sets the cookie path
* @param cookiePath The cookie path
* @return This instance
*/
public void setCookiePath(String cookiePath) {
this.cookiePath = cookiePath;
@@ -142,13 +140,11 @@ public final class CookieServerCsrfTokenRepository implements ServerCsrfTokenRep
/**
* Sets the cookie domain
* @param cookieDomain The cookie domain
* @return This instance
*/
public void setCookieDomain(String cookieDomain) {
this.cookieDomain = cookieDomain;
}
private CsrfToken createCsrfToken() {
return createCsrfToken(createNewToken());
}