我遇到一个奇怪的问题,也许你可以帮我解决Spring Security问题。
我有一个像这样的配置类:
@EnableWebSecurity
@Configuration
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.apply(login())
.and()
.logout()
.logoutSuccessUrl("https://www.google.com")
.and()
.authorizeRequests()
.antMatchers("/api/**")
.hasRole("API_USER");
}
}
apply正在应用一个自定义安全配置器,它为拒绝访问添加了一个注销处理程序和异常处理,并允许静态资产通过诸如favicon传递。
当我调试时,我看到正在创建LogoutFilter
,但我没有看到logoutSuccessUrl
被设置为simpleUrlLogoutSuccessHandler
的目标网址。我还确保使用CSRF令牌对POST
/logout
进行操作。我知道订购事宜,所以我想知道是否有人能指出一个明显的缺陷。
登录方法基本上就是这样:
@Override
public void init(HttpSecurity http) throws Exception {
http
.exceptionHandling()
.accessDeniedHandler(myCustomAccessDeniedHandler)
.and()
.logout()
.addLogoutHandler(myLogoutHandler)
.and()
.authorizeRequests()
.antMatchers("**/favicon.*", "/public/**")
.permitAll();
}