多个JSESSIONID Cookie取决于登录路径

时间:2014-09-16 14:16:28

标签: jsf servlets cookies tomcat7 jsessionid

我在localhost中有一个带有声明性安全性(在上下文根路径上)的tomcat 7.0应用程序。登录在调用httpServletRequest#login method

的jsf操作上执行

如果初始请求是/somepage.xhtml,显示登录页面,用户发布登录数据,我会调用HttpServletRequest.login登录,它可以正常工作。然后cookie有正确的路径,它工作正常

当初始请求是/somefolder/somepage.xhtml时出现问题。 JSESSIONID cookie位于path / contextRoot / somefolder中。当我提交登录时,登录后我可以看到我有2个JSESSIONID cookie(一个带路径/另一个带/ somefolder / path)。它可以在根文件夹中正常导航,但是当我点击/ somefolder页面时会错过会话。

在我的context.xml中我有

<Context  sessionCookiePath="/" 

虽然它似乎不起作用(这不是我想要的......)

有什么想法吗? Thx提前

1 个答案:

答案 0 :(得分:1)

我找到了。

使用JVM开关

 -Dorg.apache.catalina.STRICT_SERVLET_COMPLIANCE=true 

(我还在测试会话序列化到磁盘)。如果我删除此开关,则只创建一个JSESSIONID。