У меня есть приложение spring -boot с использованием spring -security. Конфигурация безопасности разделена на несколько экземпляров WebSecurityConfigurerAdapter
.
У меня есть тот, где я обычно настраиваю выход из системы:
@Override
protected void configure(HttpSecurity http) throws Exception {
// configure logout
http
.logout()
.logoutUrl("/logout")
.invalidateHttpSession(true)
.addLogoutHandler((request, response, authentication) -> {
System.out.println("logged out 1!");
})
.permitAll();
// ... more security configuration, e.g. login, CSRF, rememberme
}
И есть еще WebSecurityConfigurerAdapter
, где я хочу почти ничего не делать, кроме добавления другого LogoutHandler:
@Override
protected void configure(HttpSecurity http) throws Exception {
// configure logout
http
.logout()
.logoutUrl("/logout")
.addLogoutHandler((request, response, authentication) -> {
System.out.println("logged out 2!");
});
}
Вызывается оба метода configure()
. Однако, если я выхожу из системы, вызывается только первый LogoutHandler
. Изменение @Order
обеих конфигураций не изменяет результат.
Что не хватает в моей конфигурации?