У меня странная проблема, которую, возможно, вы поможете мне решить с помощью 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();
}
@Generic Я не делал, я не думал, что мне нужно с logoutSuccessUrl.
@dur yep, меня перенаправляют на / login? logout вместо моего определенного URL-адреса.




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