首页 > 解决方案 > 即使请求中提供了现有会话 ID,Tomcat 也会创建新的 JSESSIONID

问题描述

我在 tomcat 上部署了一个 Web 应用程序,与 Forgerock 集成以实现 SSO。最初,当用户使用 forgerock tomcat 登录应用程序时,会创建并返回一个新的 JSESSIONID(针对该特定会话)。但是一旦 UI 模块对服务器上的后端应用程序进行更多的休息调用(同时在登录 forgerock 后加载 UI 时),tomcat 在响应中随机返回一个新的会话 ID。

我们将 Tomcat 的持久性管理器和文件存储用于会话存储。以下是为它完成的配置。

<Manager className="org.apache.catalina.session.PersistentManager" persistAuthentication="true" processExpiresFrequency="1" maxIdleBackup="1">
           <Store className="org.apache.catalina.session.FileStore" directory="${catalina.base}/temp/sessions"/>
   </Manager>

因此,主要部分是当使用现有活动会话发出请求时,tomcat 在响应标头中返回新的 JSESSIONID 的原因。

这种行为是随机发生的,有时它可以正常工作,有时它会返回新的 JSESSIONID。

标签: sessiontomcatspring-securityspring-security-oauth2jsessionid

解决方案


推荐阅读