首页 > 解决方案 > Weblogic 为每个请求重置 JSESSIONID cookie

问题描述

我目前正在维护相当大的 Java webapp,我需要让它在 Weblogic server 12.2.1.3.0 上也能正常工作。该应用程序可以在 JBoss 7、Wildfly 13 和 Websphere 上正常运行。

我能够将应用程序部署到 Weblogic,启动它(没有任何错误)并登录。该应用程序为 3 个路径(“/”、“/myApp”、“/myApp/home”)创建 3 个 JSESSIONID cookie。然而,路径 '/' 的 JSESSIONID cookie 会随着对服务器的每个请求而改变。当我在 chrome devTools 中进行网络调用时,每个调用都有不同的 cookie 值,这会破坏我应用程序的会话相关功能。

有趣的是,如果我删除路径为“/myApp/home”的 cookie,此行为将停止(路径为“/”的 cookie 停止重置)。在 Chrome 和 Firefox 上观察到相同的行为。

该应用程序使用 Spring security 3.2.10 和 GWT 2.6.1。

如果我没有发现一些会话失效,但没有任何成功(如前所述,它在其他应用程序服务器上正常工作),我试图通过 spring 过滤器链。欢迎任何建议

标签: springcookiesgwtweblogicweblogic12c

解决方案


似乎 WebLogic 服务器的当前行为是仅验证 cookie 标头中的第一个 JSESSIONID cookie!尝试设置以下 java 选项 -Dweblogic.http.tryAllCookies=true


推荐阅读