Spring SAML - 当用户从应用程序注销时是否必须调用 SAML 本地注销?
Spring SAML - Is it mandatory to call SAML local logout when user signs off from application?
根据 link 的回答,我了解到如果调用 SAML 本地注销 (/saml/logout?local=true
) Spring-SAML 将清除本地 cookie。因此,我修改了应用程序中的注销逻辑以调用它。
到目前为止一切看起来都很好。但是我的应用程序在 web.xml 中将会话超时设置为 20 分钟。
<session-config>
<session-timeout>20</session-timeout>
</session-config>
如果用户不活动 20 分钟或浏览器被用户关闭,会话将由容器静默销毁。在这种情况下,不会调用 SAML 注销。
问题:
- Spring-SAML 是否在收到 SAML 响应后对用户进行身份验证后保留任何引用?
- 如果是,它在哪里维护引用(会话或其他地方)?还有其他清理方法吗?
- 如果我们不调用 SAML 本地注销,会有什么影响?
我担心的是,如果不清理引用,可能会导致应用程序的长时间 运行 内存泄漏。
默认情况下,Spring SAML 的所有状态都存储在 HttpSession
中(作为对象 SAMLCredential
中 Spring 安全上下文的一部分),并将在会话超时时清除(或者更准确地说,在您的容器决定在到期后执行会话清理的时候)。
与Spring安全支持的任何其他身份验证方法完全相同,因此您无需担心不会调用本地注销。
根据 link 的回答,我了解到如果调用 SAML 本地注销 (/saml/logout?local=true
) Spring-SAML 将清除本地 cookie。因此,我修改了应用程序中的注销逻辑以调用它。
到目前为止一切看起来都很好。但是我的应用程序在 web.xml 中将会话超时设置为 20 分钟。
<session-config>
<session-timeout>20</session-timeout>
</session-config>
如果用户不活动 20 分钟或浏览器被用户关闭,会话将由容器静默销毁。在这种情况下,不会调用 SAML 注销。
问题:
- Spring-SAML 是否在收到 SAML 响应后对用户进行身份验证后保留任何引用?
- 如果是,它在哪里维护引用(会话或其他地方)?还有其他清理方法吗?
- 如果我们不调用 SAML 本地注销,会有什么影响?
我担心的是,如果不清理引用,可能会导致应用程序的长时间 运行 内存泄漏。
默认情况下,Spring SAML 的所有状态都存储在 HttpSession
中(作为对象 SAMLCredential
中 Spring 安全上下文的一部分),并将在会话超时时清除(或者更准确地说,在您的容器决定在到期后执行会话清理的时候)。
与Spring安全支持的任何其他身份验证方法完全相同,因此您无需担心不会调用本地注销。