首页 > 解决方案 > 无法退出

问题描述

我们有一些 SpringBoot(带有 Spring Security 5 OAuth2)应用程序托管在 Pivotal Cloud Foundry (PCF) 上。我们在 PCF 中使用 SSO 磁贴,它与 ADFS 集成,使我们能够获取存储在 AD 中的凭据。此实现创建多个 cookie 和 saml 令牌。Spring 会话失效不会清除所有这些 cookie。

是否有建议的机制来清除 LogoutSuccessHandler 中的这些 cookie?

谢谢

标签: spring-bootspring-securitysingle-sign-oncloud-foundry

解决方案


您可以在安全配置中告诉 Spring Boot 要删除哪些 cookie:

    http
        .formLogin()
            .loginPage("/login")
            .loginProcessingUrl("/login")
            .permitAll()
            .successHandler(authSuccessHandler)
            .failureHandler(authFailureHandler)
            .and()
        .logout()
            .logoutRequestMatcher(new AntPathRequestMatcher("/logout"))
            .logoutSuccessUrl("https://fooo.com")
            .deleteCookies("SESSION", "x_token", "x_user")
            .clearAuthentication(true)
            .invalidateHttpSession(true)
            .permitAll();

推荐阅读