码迷,mamicode.com
首页 > 其他好文 > 详细

同域名下的多项目谨防sessionid互相影响,造成严重后果

时间:2015-09-15 16:42:00      阅读:184      评论:0      收藏:0      [点我收藏+]

标签:java application server   session   

同域名下的多项目谨防sessionid互相影响,造成严重后果,保持咱程序猿的优良传统,独立的命名空间,严格的洁癖症,处事不惊的顽强能力。转入正题 已我开发cctv项目为例,当然cctv愿意找我,我是很乐意效劳的,哈哈!!不过我是无证程序猿,很可能去了也是临时工,好吧,我还是拿他做例子吐槽吧:

www.cctv.com/zhidao

www.cctv.com/news

这里将zhidao、news两个项目通过nginx整合到www.cctv.com的二级目录下,如果tomcat的配置是这样:


  1. <Context path="/zhidao" docBase="/zhidao.cctv.cn" sessionCookiePath="/"  sessionCookieDomain=".<span style="font-family: Arial, Helvetica, sans-serif;">cctv</span><span style="font-family: Arial, Helvetica, sans-serif;">.com"  reloadable="false" caseSensitive="false" crossContext="true"></span>  

  2.        </Context>  




  1. <Context path="/news" docBase="/news.cctv.cn" sessionCookiePath="/<span style="font-family: Arial, Helvetica, sans-serif;">"  sessionCookieDomain=".</span><span style="font-family: Arial, Helvetica, sans-serif;">cctv</span><span style="font-family: Arial, Helvetica, sans-serif;">.com"  reloadable="false" caseSensitive="false" crossContext="true"></span>  

  2.        </Context>  



那么后果很有意思,比如zhidao、news、www都有自己的用户体系,都有登陆功能,那么登陆后记录的sessionid在浏览器的表现都是JSESSIONID,并且保持的目录都是/这个根目录,域名为根域。这种情况在firefox下面就会影响之前登陆的系统了。

技术分享

其实很好理解,还可以看head信息:

本来想自己弄一套图的,但是有点懒,盗用解决公司问题是截下的图,大家勿喷,多多包含!!!!

第一个域名登陆后的请求信息,注意里面的JSESSIONID

技术分享

第二个域名登陆后的请求信息,注意里面的JSESSIONID

技术分享技术分享


第一个域名再次访问请求信息,注意里面的JSESSIONID,和响应信息,注意这也有sessionID,这里发生了重定义

技术分享技术分享



怎么办,找有经验的google,或者官方网站,但就别看baidu了,一般做技术的都懂,你呢,应该懂得。。。


正确配置如下


  1. <Context path="/zhidao" docBase="/zhidao.cctv.cn" sessionCookiePath="/zhidao"  sessionCookieDomain=".<span style="font-family: Arial, Helvetica, sans-serif;">cctv</span><span style="font-family: Arial, Helvetica, sans-serif;">.com" sessionCookieName="CCTVZD_SESSIONID" reloadable="false" caseSensitive="false" crossContext="true"></span>  

  2.        </Context>  




  1. <Context path="/news" docBase="/news.cctv.cn" sessionCookiePath="/<span style="font-family: Arial, Helvetica, sans-serif;">news</span><span style="font-family: Arial, Helvetica, sans-serif;">"  sessionCookieDomain=".</span><span style="font-family: Arial, Helvetica, sans-serif;">cctv</span><span style="font-family: Arial, Helvetica, sans-serif;">.com" sessionCookieName="CCTVNEWS_SESSIONID" reloadable="false" caseSensitive="false" crossContext="true"></span>  

  2.        </Context>  



有始有终,奉上官方秘方:

http://tomcat.apache.org/tomcat-7.0-doc/config/context.html

技术分享




本文出自 “摩西的博客” 博客,请务必保留此出处http://mx007.blog.51cto.com/10710811/1694941

同域名下的多项目谨防sessionid互相影响,造成严重后果

标签:java application server   session   

原文地址:http://mx007.blog.51cto.com/10710811/1694941

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!