Spring Boot с WSO2 OAuth2 - logoutSuccessUrl не работает

Мы внедряем сервис, используя Spring Boot (1.2.2) с WSO2 IS (5.x) в качестве поставщика удостоверений OAuth2.

В рамках выхода из системы мы хотели выполнить некоторые действия по очистке, а затем перенаправить на страницу входа. Ниже приведен класс настройки безопасности Spring.

@Configuration
@EnableWebMvcSecurity
public class SecurityConfiguration extends OAuth2SsoConfigurerAdapter {
private final Logger log = LoggerFactory.getLogger(this.getClass());

@Autowired
private OAuth2ClientContext oAuth2ClientContext;

@Autowired
private MmaLogoutHandler logoutHandler;

@Override
public void match(RequestMatchers matchers) {
    matchers.anyRequest();
}

@Override
public void configure(HttpSecurity http) throws Exception {
    http
    .authorizeRequests()
    .anyRequest().authenticated()
    .and()
    .logout()
    .logoutRequestMatcher(new AntPathRequestMatcher("/logoff", "GET"))
    .logoutSuccessUrl("/#/home")
    .invalidateHttpSession(true)
    .deleteCookies("JSESSIONID","remember-me")
    .permitAll()
    .and()
    .addFilterAfter(csrfHeaderFilter(), CsrfFilter.class)
    .addFilterBefore(customerAuthorizationFilter(), AbstractPreAuthenticatedProcessingFilter.class);
}

Когда вызывается выход из системы, журнал показывает, что Spring Security очистил сеанс, но не перенаправляет -

2015-09-01 14:23:05.983 DEBUG 12936 --- [nio-8443-exec-8] o.s.s.w.a.logout.LogoutFilter            : Logging out user 'org.springframework.security.oauth2.provider.OAuth2Authentication@e6269aa6: Principal: mrpink_bd3d5b71-b212-11e4-ac24-22000b4791d2; Credentials: [PROTECTED]; Authenticated: true; Details: remoteAddress=127.0.0.1, sessionId=<SESSION>, tokenType=bearertokenValue=<TOKEN>; Granted Authorities: ROLE_USER' and transferring to logout destination

2015-09-01 14:23:05.984 DEBUG 12936 --- [nio-8443-exec-8] o.s.s.w.a.l.SecurityContextLogoutHandler : Invalidating session: B7B50DC106F50EDA84ACFEF229DE167B

2015-09-01 14:23:05.984 DEBUG 12936 --- [nio-8443-exec-8] .s.s.w.a.l.SimpleUrlLogoutSuccessHandler : Using default Url: /#/home

 2015-09-01 14:23:05.984 DEBUG 12936 --- [nio-8443-exec-8] .s.s.w.a.l.SimpleUrlLogoutSuccessHandler : Response has already been committed. Unable to redirect to /#/home

 2015-09-01 14:23:05.984 DEBUG 12936 --- [nio-8443-exec-8] s.s.w.c.SecurityContextPersistenceFilter : SecurityContextHolder now cleared, as request processing completed

Согласно журналу перенаправление не происходит, и страница фактически не перенаправлена.

Это связано с OAuth2 или уже есть обработчик выхода по умолчанию с загрузкой Spring, который необходимо переопределить?

0 ответов

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