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.AuthorityReactiveAuthorizationManager; | ||||||
| import org.springframework.security.authorization.AuthorizationDecision; | import org.springframework.security.authorization.AuthorizationDecision; | ||||||
| import org.springframework.security.authorization.ReactiveAuthorizationManager; | 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.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.MatcherSecurityWebFilterChain; | ||||||
| import org.springframework.security.web.server.SecurityWebFilterChain; | import org.springframework.security.web.server.SecurityWebFilterChain; | ||||||
| import org.springframework.security.web.server.authentication.ServerAuthenticationEntryPointFailureHandler; | import org.springframework.security.web.server.ServerAuthenticationEntryPoint; | ||||||
| import org.springframework.security.web.server.authentication.ServerAuthenticationFailureHandler; | 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.AuthenticationWebFilter; | ||||||
|  | import org.springframework.security.web.server.authentication.HttpBasicServerAuthenticationEntryPoint; | ||||||
| import org.springframework.security.web.server.authentication.RedirectServerAuthenticationEntryPoint; | import org.springframework.security.web.server.authentication.RedirectServerAuthenticationEntryPoint; | ||||||
| import org.springframework.security.web.server.authentication.RedirectServerAuthenticationSuccessHandler; | 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.LogoutWebFilter; | ||||||
| import org.springframework.security.web.server.authentication.logout.SecurityContextServerLogoutHandler; | 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.AuthorizationContext; | ||||||
| import org.springframework.security.web.server.authorization.AuthorizationWebFilter; | import org.springframework.security.web.server.authorization.AuthorizationWebFilter; | ||||||
| import org.springframework.security.web.server.authorization.DelegatingReactiveAuthorizationManager; | import org.springframework.security.web.server.authorization.DelegatingReactiveAuthorizationManager; | ||||||
| import org.springframework.security.web.server.authorization.ExceptionTranslationWebFilter; | import org.springframework.security.web.server.authorization.ExceptionTranslationWebFilter; | ||||||
| import org.springframework.security.web.server.context.AuthenticationReactorContextWebFilter; | 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.SecurityContextRepositoryWebFilter; | ||||||
|  | import org.springframework.security.web.server.context.ServerSecurityContextRepository; | ||||||
| import org.springframework.security.web.server.context.ServerWebExchangeAttributeServerSecurityContextRepository; | import org.springframework.security.web.server.context.ServerWebExchangeAttributeServerSecurityContextRepository; | ||||||
| import org.springframework.security.web.server.context.WebSessionServerSecurityContextRepository; | import org.springframework.security.web.server.context.WebSessionServerSecurityContextRepository; | ||||||
| import org.springframework.security.web.server.header.CacheControlServerHttpHeadersWriter; | import org.springframework.security.web.server.header.CacheControlServerHttpHeadersWriter; | ||||||
|  | @ -581,6 +582,8 @@ public class ServerHttpSecurity { | ||||||
| 
 | 
 | ||||||
| 		private ServerLogoutHandler serverLogoutHandler = new SecurityContextServerLogoutHandler(); | 		private ServerLogoutHandler serverLogoutHandler = new SecurityContextServerLogoutHandler(); | ||||||
| 
 | 
 | ||||||
|  | 		private ServerLogoutSuccessHandler logoutSuccessHandler; | ||||||
|  | 
 | ||||||
| 		private String logoutUrl = "/logout"; | 		private String logoutUrl = "/logout"; | ||||||
| 
 | 
 | ||||||
| 		private ServerWebExchangeMatcher requiresLogout = ServerWebExchangeMatchers | 		private ServerWebExchangeMatcher requiresLogout = ServerWebExchangeMatchers | ||||||
|  | @ -599,6 +602,11 @@ public class ServerHttpSecurity { | ||||||
| 			return this; | 			return this; | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
|  | 		public LogoutBuilder logoutSuccessHandler(ServerLogoutSuccessHandler handler) { | ||||||
|  | 			this.logoutSuccessHandler = handler; | ||||||
|  | 			return this; | ||||||
|  | 		} | ||||||
|  | 
 | ||||||
| 		public ServerHttpSecurity disable() { | 		public ServerHttpSecurity disable() { | ||||||
| 			ServerHttpSecurity.this.logout = null; | 			ServerHttpSecurity.this.logout = null; | ||||||
| 			return and(); | 			return and(); | ||||||
|  | @ -617,6 +625,9 @@ public class ServerHttpSecurity { | ||||||
| 			LogoutWebFilter logoutWebFilter = new LogoutWebFilter(); | 			LogoutWebFilter logoutWebFilter = new LogoutWebFilter(); | ||||||
| 			logoutWebFilter.setServerLogoutHandler(this.serverLogoutHandler); | 			logoutWebFilter.setServerLogoutHandler(this.serverLogoutHandler); | ||||||
| 			logoutWebFilter.setRequiresLogout(this.requiresLogout); | 			logoutWebFilter.setRequiresLogout(this.requiresLogout); | ||||||
|  | 			if(this.logoutSuccessHandler != null) { | ||||||
|  | 				logoutWebFilter.setServerLogoutSuccessHandler(this.logoutSuccessHandler); | ||||||
|  | 			} | ||||||
| 
 | 
 | ||||||
| 			return logoutWebFilter; | 			return logoutWebFilter; | ||||||
| 		} | 		} | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue