如何配置securityWebFilterChain(ServerHttpSecurity http)
以便我的应用程序注销GET /logout
?
我有SpringBoot 2
Spring 5
和WebFlux
我试过了:
http
.logout()
.requiresLogout(ServerWebExchangeMatchers.pathMatchers(HttpMethod.GET, "/logout"))
.logoutSuccessHandler(logoutSuccessHandler("/after-life"))
问题是,a LogoutPageGeneratingWebFilter
比LogoutWebFilter
发出的早坐SecurityWebFilterChain
。在那里有一个硬编码.pathMatchers(HttpMethod.GET, "/logout")
-这导致我的应用程序始终在GET请求上发出html页面。
我找不到抑制自动注销页面生成的方法:(
如文档中所述,
默认是Spring Security将在“ / login”处生成一个登录页面,并在“ / logout”处生成一个注销页面。如果是自定义的:不再提供默认的“登录和注销”页面。应用程序必须在提供的URL上呈现登录页面。应用程序必须在提供的URL上呈现认证错误页面+“?error”。 POST到提供的URL
自定义配置以具有默认登录名而没有默认注销。
@Bean
public SecurityWebFilterChain securityWebFilterChain(ServerHttpSecurity httpSecurity){
LoginPageGeneratingWebFilter loginpage= new LoginPageGeneratingWebFilter();
loginpage.setFormLoginEnabled(true);
return httpSecurity
.addFilterAt(loginpage, SecurityWebFiltersOrder.LOGIN_PAGE_GENERATING)
.authorizeExchange()
.pathMatchers("/home").authenticated()
.and().formLogin()
.loginPage("/login")
.and()
.logout()
.logoutUrl("/logout").requiresLogout(ServerWebExchangeMatchers.pathMatchers(HttpMethod.GET, "/logout"))
.and()
.build();
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句