Spring SAML - 当用户从应用程序注销时,是否必须调用SAML本地注销?

时间:2015-02-24 10:19:31

标签: saml-2.0 spring-saml opensaml

根据link的答案,我了解如果调用SAML本地注销(/saml/logout?local=true),Spring-SAML将清除本地cookie。所以,我已经修改了我的应用程序中的注销逻辑来调用它。

直到现在一切看起来都不错。但我的应用程序在web.xml中将会话超时设置为20分钟。

<session-config>
        <session-timeout>20</session-timeout>
</session-config>

如果用户处于非活动状态20分钟或用户关闭浏览器,则会话将被容器以静默方式销毁。在这种情况下,不会调用SAML Logout。

问题:

  1. 收到SAML响应后,一旦用户通过身份验证,Spring-SAML是否会维护任何引用?
  2. 如果是,它在哪里维护引用(会话或其他地方)?还有其他方法可以清理它们吗?
  3. 如果我们不调用SAML本地注销会有什么影响?
  4. 我担心的是,如果未清理引用,则可能会导致应用程序长时间内存泄漏。

1 个答案:

答案 0 :(得分:2)

默认情况下,Spring SAML的所有状态都存储在HttpSession中(作为对象SAMLCredential中Spring Security上下文的一部分)并将在会话超时时清除(或者更确切地说,在容器决定时)在到期后执行会话清理。)

与Spring Security支持的任何其他身份验证方法完全相同,因此您不必担心不会调用本地注销。