添加自定义注销成功处理程序似乎不适用于Spring Security

时间:2018-05-05 01:15:28

标签: java spring spring-security

我遇到一个奇怪的问题,也许你可以帮我解决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();
}

0 个答案:

没有答案