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…
	
		Reference in New Issue