Weblogic Server JSESSIONID 在同一个域下的应用程序之间覆盖

问题描述

问题:

我在 Weblogic Server 中部署了一个 Spring Boot 应用程序,其他应用程序在同一域下运行。假设我访问我的 Web 应用程序并在一个选项卡中将其打开,然后在第二个选项卡中打开同一域的不同应用程序。然后,如果我切换到我的第一个选项卡,我的端点将返回 ERROR 500,因为会话为空。

我发现问题出在cookieJSESSIONID,当我打开一个新的应用程序时它被覆盖了,然后我的应用程序后端抛出了错误

问题

所以我想问一下,在不提出安全问题的情况下,这个问题的最佳解决方案是什么。

解决方法

解决方案是为每个 Web 应用程序设置不同的 cookie 名称。 要更新 WebLogic 用于会话关联的 cookie,请按如下所示更改 weblogic.xml 文件:

<session-descriptor>
    <cookie-name>[YOUR JSESSIONID NAME]</cookie-name>
    <cookie-domain>[YOUR COOKIE DOMAIN]</cookie-domain>
</session-descriptor>

阅读此documentation了解详情。