Spring Security SAML模块,当配置为:
@Bean
SecurityFilterChain configure(HttpSecurity http) throws Exception {
http
//other stuff...
.saml2Logout(withDefaults());
return http.build();
}
将重定向到localhost:port/login?默认情况下,logout,文档中也说明它可以"重定向到任何配置成功的注销端点">,但我似乎找不到在哪里或如何配置这个重定向URL。
https://docs.spring.io/spring-security/reference/servlet/saml2/logout.html
我已经检查了文档中演示的5个可定制组件(注销请求&响应解析、身份验证和存储),但它们似乎都没有覆盖重定向URL。
我认为另一种不太优雅的方法是在外部应用一个过滤器,将任何请求重定向到"/login?logout"到我想要的重定向位置,但这绝对不是正确的解决方案。
摘自spring-security的GitHub:
使用您提供的代码,它看起来像这样:缺省情况下,saml2logout()继承自logout()。你可以输入:
http .logout().logoutSuccessUrl("/myLogoutSuccessUrl") .saml2Logout(Customizer.withDefaults())
@Bean
SecurityFilterChain configure(HttpSecurity http) throws Exception {
http
//other stuff...
.logout().logoutSuccessUrl("/myLogoutSuccessUrl")
.saml2Logout(withDefaults());
return http.build();
}