当前位置: 首页 > 知识库问答 >
问题:

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

孔理
2023-03-14

根据链接中的答案,我知道如果调用SAML local logout(/SAML/logout?local=true),Spring SAML将清除本地Cookie。因此,我修改了应用程序中的注销逻辑以调用它。

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

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

如果用户处于非活动状态20分钟或浏览器被用户关闭,会话将被容器无声地销毁。在这种情况下,不会调用SAML注销。

问题:

  1. 收到SAML响应后,一旦用户通过身份验证,Spring-SAML是否会维护任何引用?
  2. 如果是,它在哪里维护引用(会话或其他地方)?有其他方法可以清理它们吗?
  3. 如果我们不调用SAML本地注销会有什么影响?

我担心的是,如果不清理引用,在应用程序的长期运行中可能会导致内存泄漏。


共有1个答案

屈俊远
2023-03-14

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

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

 类似资料:
  • 我已经设置了一个使用OKTA作为IDP的应用程序。该应用程序基于SAML。这部分工作正常。 但我无法注销。为此,我们有1。已启用单一注销2。设置单一注销URL(我从标题Identity Provider Single Logout URL下的IDP元数据中收到此URL)3。Sp问题(我从标题Identity Provider Issuer下的IDP元数据中收到此消息)4。签名证书(这是IDP的证书

  • 我正在使用Spring SAML实现。SSO circle元数据xml具有注销endpoint,这有助于本地注销和全局注销。但我正在与其他一些IDP进行交互,它们的元数据xml中没有注销endpoint。 在这些场景中应该如何处理LOGOUT? 删除请求的Cookie是这个问题的唯一解决方案吗?或者这个场景有什么解决方法吗? 非常感谢你在这方面的帮助。

  • 它给出: 下面是我使用的代码: 方法verifyUserExistance是; 我就是这样处理注销的;

  • 我正在用Firebase设置身份验证。我成功登录了,但当我注销时,我的应用程序崩溃了 我在activity_menu上创建菜单。菜单项名为log_out。如果用户单击此项,则必须注销 我尝试这段代码查看错误,但它没有显示给我 我以为它是成功运行的,我没有看到任何错误。我怎么知道呢?

  • 我们的javaspring应用程序(sp)允许客户端进行SSO集成。我们计划引入SLO(单点注销)作为安全审计要求的一部分。 我有一个疑问,如果我们的应用程序请求SLO到idp,那么特定客户的所有其他开放应用程序都会注销? 我们不想让客户的其他应用程序因我们的应用程序而注销。 请告知。如果SAML SLO请求只会影响请求注销的唯一服务提供商或客户SSO登录的所有服务提供商?

  • 问题内容: 最近,我将Swing应用程序转换为Webstart。这个过程非常简单,但是我发现在关闭所有窗口之后,应用程序的JVM没有终止。线程转储显示有两个非守护进程线程,特别是Swing的EDT,AWT和几个与Websart相关的线程。 实际使用的策略是,每个窗口在创建时都会增加一个计数器,在关闭时会减少一个。默认关闭操作为DISPOSE_ON_CLOSE。当计数器达到零时,我停止所有线程池并释