2015-02-24 83 views
2

根据link的回答,我知道如果SAML本地注销(/saml/logout?local=true)被调用,Spring-SAML将清除本地cookie。所以,我修改了我的应用程序中的注销逻辑来调用它。Spring SAML - 当用户从应用程序注销时,是否必须调用SAML本地注销?

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

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

在用户闲置20分钟或浏览器的情况下被用户关闭时,会话将被由容器默默地破坏。在这种情况下,SAML注销不会被调用。

问题:

  1. 春天在什么-SAML保持任何引用一旦收到SAML响应之后用户进行身份验证?
  2. 如果是,它在哪里维护引用(会话或其他地方)?任何替代方法来清理它们?
  3. 如果我们不调用SAML本地注销,会有什么影响?

我担心的是,如果引用没有被清理,它可能会导致应用程序长期运行时发生内存泄漏。

回答

2

默认春SAML的所有状态被存储在HttpSession(如春季安全上下文的一部分,目的SAMLCredential),并在会话超时的时候你的容器决定执行期满后会话清理及时清理(或者更精确地)。

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

相关问题