更改 Cookie JSESSIONID 名称

2022-08-31 16:55:29

我有一个要求,必须在单个物理盒中运行多个tomcat服务器。从浏览器访问这些应用程序时,当用户在应用程序之间切换时,会导致注销用户以前访问的应用程序。这是因为 JSESSIONID Cookie 冲突。

一种可能的解决方案是在不同的上下文中运行每个应用程序。不幸的是,我的应用程序将无法在上下文路径设置中工作,因为没有资源是在前面预置 request.getContextPath() 的情况下访问的。

这让我需要更改 cookie JSESSIONID 的名称来解决冲突。有没有办法做到这一点?如果是,如何?

希望我清楚地陈述了我的问题。

注意:我的所有应用程序都在同一台计算机的不同端口中运行。


答案 1

使用Servlet API 3.0,一切都要简单得多。

现在,您可以在 Web 中对其进行配置.xml:

<session-config>
    <cookie-config>
        <name>MY_JSESSIONID_YAHOOOOOO</name>
    </cookie-config>
</session-config>

就是这样!


答案 2

以下内容适用于我在上下文中的Tomcat7.xml文件:

<Context path="/yourApp" sessionCookieName="custom_session_id">

推荐