Добавление настраиваемого обработчика успешного выхода из системы, похоже, не работает для 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");

      }
}

приложение применяет настраиваемый конфигуратор безопасности, который добавляет обработчик выхода из системы и обработку исключений для отказа в доступе и позволяет передавать статические ресурсы, такие как 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();
}

вы реализовали LogoutSuccessHandler?

Ali Akbarpour 05.05.2018 10:47

@Generic Я не делал, я не думал, что мне нужно с logoutSuccessUrl.

Will Huang 05.05.2018 19:05

@dur yep, меня перенаправляют на / login? logout вместо моего определенного URL-адреса.

Will Huang 06.05.2018 21:36
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
3
428
0

Другие вопросы по теме