我在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提前
答案 0 :(得分:1)
我找到了。
使用JVM开关
-Dorg.apache.catalina.STRICT_SERVLET_COMPLIANCE=true
(我还在测试会话序列化到磁盘)。如果我删除此开关,则只创建一个JSESSIONID。