From 45a9c0fd54bc48a5dbbfa2362bec286b32dc68f3 Mon Sep 17 00:00:00 2001 From: Rob Winch Date: Fri, 21 Sep 2018 00:57:26 -0500 Subject: [PATCH] Polish Automatically Add CsrfServerLogoutHandler Issue: gh-5337 --- .../config/web/server/ServerHttpSecurity.java | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/config/src/main/java/org/springframework/security/config/web/server/ServerHttpSecurity.java b/config/src/main/java/org/springframework/security/config/web/server/ServerHttpSecurity.java index 401ad2d14b..3fa3213cf8 100644 --- a/config/src/main/java/org/springframework/security/config/web/server/ServerHttpSecurity.java +++ b/config/src/main/java/org/springframework/security/config/web/server/ServerHttpSecurity.java @@ -1608,7 +1608,7 @@ public class ServerHttpSecurity { protected void configure(ServerHttpSecurity http) { Optional.ofNullable(this.csrfTokenRepository).ifPresent(serverCsrfTokenRepository -> { this.filter.setCsrfTokenRepository(serverCsrfTokenRepository); - http.logout().logoutHandler(new CsrfServerLogoutHandler(serverCsrfTokenRepository)); + http.logout().addLogoutHandler(new CsrfServerLogoutHandler(serverCsrfTokenRepository)); }); http.addFilterAt(this.filter, SecurityWebFiltersOrder.CSRF); } @@ -2350,10 +2350,14 @@ public class ServerHttpSecurity { * @return the {@link LogoutSpec} to configure */ public LogoutSpec logoutHandler(ServerLogoutHandler logoutHandler) { - if (logoutHandler != null) { - this.logoutHandlers.add(logoutHandler); - } + Assert.notNull(logoutHandler, "logoutHandler cannot be null"); + this.logoutHandlers.clear(); + return addLogoutHandler(logoutHandler); + } + private LogoutSpec addLogoutHandler(ServerLogoutHandler logoutHandler) { + Assert.notNull(logoutHandler, "logoutHandler cannot be null"); + this.logoutHandlers.add(logoutHandler); return this; }