cookie覆盖问题

来源:互联网 发布:钢琴谱打印软件 编辑:程序博客网 时间:2024/06/06 16:49

一、问题现象

最近在做手机触屏版的项目,部署完后发现一直让重复登录的问题,其中cookie中的JSESSIONID是不断变化的,也就是说发生了cookie覆盖的问题。


二、问题原因

由于触屏版通过调用pc端接口的方式获取数据的,而两者的域是相同的,只是端口不同,因此后者将前者的cookie覆盖了


三、问题解决

参考http://my.oschina.net/eastwmt/blog/151596


今天遇到个问题,登陆本系统,调用对方的一个链接(action),打开了一个新的浏览器窗口。然后回到我的网站,点击任何一个东西,都会回到登陆页面。

使用firefox看了下,在点击链接前和链接后的JSESSIONID是不同的

本页面:

调阅后的页面:

发现JSESSIONID的值变化了,而有些意外的是调阅地址的域竟然也是168.88.100.42.经过以下博文的查阅

http://www.cnblogs.com/ibook360/archive/2011/12/15/2288666.html

http://blog.shilimin.com/338.htm

找到了问题解决方案,在tomcat7的配置文件server.xml中修改JSESSIONID的名字,来解决冲突。

?
1
<EnginedefaultHost="localhost"name="Catalina"><ContextdocBase="healthDocW3"path="/DocW3"reloadable="true"source="org.eclipse.jst.jee.server:DocW3"sessionCookiePath="/DocW3"sessionCookieName="JSESSIONID1"/></Host></Engine>

效果如下,原来的JSESSIONID被JSESSIONID1所代替 

 后来发现必须在启动后才能修改server.xml,故将其配置写入context.xml

?
1
<Context docBase="DocW3"path="/DocW3"reloadable="true"source="org.eclipse.jst.jee.server:DocW3"sessionCookiePath="/DocW3"sessionCookieName="JSESSIONID1">

 如果没有指定的项目可以配为

?
1
<Context sessionCookiePath="/"sessionCookieName="JSESSIONID1">


  直接将server.xml中的修改即可,发现有两个了



0 0
原创粉丝点击