如何检查IDP中是否仍存在有效会话?

时间:2014-03-25 08:00:57

标签: spring spring-security single-sign-on saml-2.0 spring-saml

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

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

请提供有关如何实施此过滤器的输入或是否有其他方法可以执行此操作?任何建议都表示赞赏。

1 个答案:

答案 0 :(得分:3)

您的IDP是否支持并正确初始化Single Logout?如果是这样,它可能与this issue相关,只需更新到最新的Spring SAML版本或将logout处理程序中的属性invalidateHttpSession更改为true:

<bean id="logoutSessionHandler"
  class="org.springframework.security.web.authentication.logout.SecurityContextLogoutHandler">
  <property name="invalidateHttpSession" value="true"/>
</bean>