5

我已经使用 Spring Security SAML 实现了 SSO。以下是目前为我工作的内容:

当我尝试访问 SP 的任何资源时,如果我尚未登录,我将被重定向到我的 IdP(在我的情况下为 idp.ssocircle.com)。在 IDP 成功验证后,我被重定向回 SP 并授权传入的 SAML 响应并为相应用户创建会话。直到这里一切都很酷!但是,当我从 IDP 注销(通过从外部单击 idp.ssocircle.com 注销)时,我应该无法访问我的 SP,这在我的情况下没有发生。现在我想做的是编写一个新的过滤器,在处理 SP 上的任何请求之前检查 IDP 的有效会话。我进行了很多搜索,但找不到任何解决我问题的方法。

请提供有关如何实现此过滤器的输入,或者是否有其他方法可以做到这一点?任何建议表示赞赏。

4

1 回答 1

4

您的 IDP 是否支持并正确初始化单点注销?如果是这样,它可能与此问题有关,只需更新到最新的 Spring SAML 版本或将注销处理程序中的属性 invalidateHttpSession 更改为 true:

<bean id="logoutSessionHandler"
  class="org.springframework.security.web.authentication.logout.SecurityContextLogoutHandler">
  <property name="invalidateHttpSession" value="true"/>
</bean>
于 2014-04-14T19:22:49.077 回答