同一服务器上的两个应用程序使用相同的JSESSIONID

时间:2013-05-28 10:15:41

标签: java-ee spring-security tomcat6 jsessionid

我使用的是spring-security和tomcat 6

我有两个应用程序AB在同一台服务器上运行。我有一种我无法解决的情况。

当我登录A应用程序时,JSESSION会获得一个新值,比如v-a。(这可能是无关紧要的,但也可能是好的:< em>当我使用spring安全性并启用了会话迁移时,每次请求索引页面时,都会为JSESSIONID 分配一个新值

然后我请求B申请。该请求与JESSIONID = v-a一致,JSESSIONID采用新值,例如v-b。 (很可能是因为会话迁移,旧值被替换为新值)。

现在,当我想使用A应用程序时,请求会随JESSIONID = v-b一起发送!这意味着这两个应用程序使用相同的会话?关于它的令人讨厌的事情是我被抛弃了第一个应用程序并且必须再次登录...

只有当它们都使用相同的IP时才会发生这种情况。我已经使用不同的IP登录了相同的两个应用程序,没有任何问题。

任何帮助将不胜感激。如果您需要额外的信息,请告诉我。

1 个答案:

答案 0 :(得分:2)

以下是完整的详细信息:

应用A使用 localhost:8080 / dtts / dtts / a
应用程序B使用 localhost:8080 / dtts / dtts / b

对于每个URL/Path,设置名为JSESSIONID的Cookie。对于这两种应用,我们都有:
网址:localhost
路径:dtts(其余部分被忽略)

这就是第二个cookie取代第一个cookie的原因。问题解决了。