mirror of
https://github.com/spring-projects/spring-security.git
synced 2025-05-31 09:12:14 +00:00
Add LogoutBuilder ServerLogoutSuccessHandler
Fixes gh-4714
This commit is contained in:
parent
399da1ecad
commit
e23134c3ed
@ -24,28 +24,29 @@ import org.springframework.security.authorization.AuthenticatedReactiveAuthoriza
|
||||
import org.springframework.security.authorization.AuthorityReactiveAuthorizationManager;
|
||||
import org.springframework.security.authorization.AuthorizationDecision;
|
||||
import org.springframework.security.authorization.ReactiveAuthorizationManager;
|
||||
import org.springframework.security.web.server.ServerAuthenticationEntryPoint;
|
||||
import org.springframework.security.web.server.DelegatingServerAuthenticationEntryPoint;
|
||||
import org.springframework.security.web.server.ServerFormLoginAuthenticationConverter;
|
||||
import org.springframework.security.web.server.ServerHttpBasicAuthenticationConverter;
|
||||
import org.springframework.security.web.server.MatcherSecurityWebFilterChain;
|
||||
import org.springframework.security.web.server.SecurityWebFilterChain;
|
||||
import org.springframework.security.web.server.authentication.ServerAuthenticationEntryPointFailureHandler;
|
||||
import org.springframework.security.web.server.authentication.ServerAuthenticationFailureHandler;
|
||||
import org.springframework.security.web.server.ServerAuthenticationEntryPoint;
|
||||
import org.springframework.security.web.server.ServerFormLoginAuthenticationConverter;
|
||||
import org.springframework.security.web.server.ServerHttpBasicAuthenticationConverter;
|
||||
import org.springframework.security.web.server.authentication.AuthenticationWebFilter;
|
||||
import org.springframework.security.web.server.authentication.HttpBasicServerAuthenticationEntryPoint;
|
||||
import org.springframework.security.web.server.authentication.RedirectServerAuthenticationEntryPoint;
|
||||
import org.springframework.security.web.server.authentication.RedirectServerAuthenticationSuccessHandler;
|
||||
import org.springframework.security.web.server.authentication.logout.ServerLogoutHandler;
|
||||
import org.springframework.security.web.server.authentication.ServerAuthenticationEntryPointFailureHandler;
|
||||
import org.springframework.security.web.server.authentication.ServerAuthenticationFailureHandler;
|
||||
import org.springframework.security.web.server.authentication.logout.LogoutWebFilter;
|
||||
import org.springframework.security.web.server.authentication.logout.SecurityContextServerLogoutHandler;
|
||||
import org.springframework.security.web.server.authentication.HttpBasicServerAuthenticationEntryPoint;
|
||||
import org.springframework.security.web.server.authentication.logout.ServerLogoutHandler;
|
||||
import org.springframework.security.web.server.authentication.logout.ServerLogoutSuccessHandler;
|
||||
import org.springframework.security.web.server.authorization.AuthorizationContext;
|
||||
import org.springframework.security.web.server.authorization.AuthorizationWebFilter;
|
||||
import org.springframework.security.web.server.authorization.DelegatingReactiveAuthorizationManager;
|
||||
import org.springframework.security.web.server.authorization.ExceptionTranslationWebFilter;
|
||||
import org.springframework.security.web.server.context.AuthenticationReactorContextWebFilter;
|
||||
import org.springframework.security.web.server.context.ServerSecurityContextRepository;
|
||||
import org.springframework.security.web.server.context.SecurityContextRepositoryWebFilter;
|
||||
import org.springframework.security.web.server.context.ServerSecurityContextRepository;
|
||||
import org.springframework.security.web.server.context.ServerWebExchangeAttributeServerSecurityContextRepository;
|
||||
import org.springframework.security.web.server.context.WebSessionServerSecurityContextRepository;
|
||||
import org.springframework.security.web.server.header.CacheControlServerHttpHeadersWriter;
|
||||
@ -581,6 +582,8 @@ public class ServerHttpSecurity {
|
||||
|
||||
private ServerLogoutHandler serverLogoutHandler = new SecurityContextServerLogoutHandler();
|
||||
|
||||
private ServerLogoutSuccessHandler logoutSuccessHandler;
|
||||
|
||||
private String logoutUrl = "/logout";
|
||||
|
||||
private ServerWebExchangeMatcher requiresLogout = ServerWebExchangeMatchers
|
||||
@ -599,6 +602,11 @@ public class ServerHttpSecurity {
|
||||
return this;
|
||||
}
|
||||
|
||||
public LogoutBuilder logoutSuccessHandler(ServerLogoutSuccessHandler handler) {
|
||||
this.logoutSuccessHandler = handler;
|
||||
return this;
|
||||
}
|
||||
|
||||
public ServerHttpSecurity disable() {
|
||||
ServerHttpSecurity.this.logout = null;
|
||||
return and();
|
||||
@ -617,6 +625,9 @@ public class ServerHttpSecurity {
|
||||
LogoutWebFilter logoutWebFilter = new LogoutWebFilter();
|
||||
logoutWebFilter.setServerLogoutHandler(this.serverLogoutHandler);
|
||||
logoutWebFilter.setRequiresLogout(this.requiresLogout);
|
||||
if(this.logoutSuccessHandler != null) {
|
||||
logoutWebFilter.setServerLogoutSuccessHandler(this.logoutSuccessHandler);
|
||||
}
|
||||
|
||||
return logoutWebFilter;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user