Добавление собственного обработчика успеха выхода из системы, похоже, не работает для Spring Security - PullRequest
0 голосов
/ 05 мая 2018

У меня странная проблема, которая может помочь вам решить ее с помощью 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");

      }
}

Прикладная программа применяет пользовательский конфигуратор безопасности, который добавляет обработчик выхода из системы и обработку исключений для доступа, в котором запрещен доступ, и позволяет проходить статические ресурсы, такие как favicon.

Когда я отлаживаю, я вижу, что LogoutFilter создается, но я не вижу, чтобы мой logoutSuccessUrl был задан как целевой URL для simpleUrlLogoutSuccessHandler. Я также проверяю, что я делаю POST до /logout с токеном CSRF. Я знаю порядок вещей, поэтому мне было интересно, если кто-нибудь может указать на явный недостаток.

Метод авторизации в основном такой:

@Override
public void init(HttpSecurity http) throws Exception {
    http
        .exceptionHandling()
            .accessDeniedHandler(myCustomAccessDeniedHandler)
        .and()
        .logout()
            .addLogoutHandler(myLogoutHandler)
        .and()
        .authorizeRequests()
            .antMatchers("**/favicon.*", "/public/**")
                .permitAll();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...