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

同域名下的多项目谨防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

时间: 2024-08-03 07:20:20

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

Eclipse下配置javaweb项目快速部署到tomcat

用惯了VS,再用Eclipse,完全有一种从自动挡到手动挡的感觉啊. 很多同学在Eclipse下开发web项目,每一次修改代码,看效果的时候都有右键项目->Run as -> Run on server,然后慢吞吞的打开Eclipse的内建浏览器,显示如下一个界面,让人看起来分外忧郁! 在网上查了一圈,其它的方式基本都在教大家将项目发布到tomcat目录的webapp目录下,虽然比默认方式要好些,但是http://localhost:8080/InskyScheduleCenter/之类的ur

centos下搭建多项目svn服务器

svn是多人协作开发中的利器,是一个开放源代码的版本控制系统. 相比与git,他的操作更加简单,windows下有优秀的图形界面,并且支持的文件类型比较多. 本文讲述如何在linux下搭建一个svn服务器,并且进行权限分配,项目管理. 服务器环境:centos7 安装步骤: 1.yum install subversion -y 出现complete即代表安装完成. 2.选择一个目录作为svn服务器根目录 我选择的是 /srv mkdir /srv/svn 3.创建版本库,因为要展示多个版本库的

Maven环境下多模块项目构建

Maven环境下多模块项目构建 一.新建项目 1.建立我们的父模块par 2.建立我们的子模块dao层 3.建立我们的子模块service层 4.建立我们的子模块web层 5.全部配置完成后,怎么把我们的四个项目关联起来 1)添加一个dao层 2)service里面添加对应的dao依赖 3)然后回到我们的web 4)把这4个项目安装到本地 选择Run 的第二个,然后输入:clean compile install 5)配置一个tomcat插件,为执行做准备

解决IDEA下运行android项目 No resource found that matches the given name &#39;Theme.AppCompat.Light&#39;.

1.右击项目选择 解决IDEA下运行android项目 No resource found that matches the given name 'Theme.AppCompat.Light'.

如何在非空目录下 git clone 项目

在非空目录下 git clone 项目时会提示错误信息: fatal: destination path '.' already exists and is not an empty directory. 解决办法: 1. 进入非空目录,假设是 /dir/jk1 2. git clone --no-checkout https://git.oschina.net/jankerli/test.git tmp 3. mv tmp/.git . 4. rmdir tmp 5. git reset --

Eclipse下新建Maven项目、自动打依赖jar包

当我们无法从本地仓库找到需要的构件的时候,就会从远程仓库下载构件至本地仓库.一般地,对于每个人来说,书房只有一个,但外面的书店有很多,类似第,对于Maven来说,每个用户只有一个本地仓库,但可以配置访问很多远程仓库. Eclipse *版本 Eclipse *下载 强烈推荐书籍:Maven实战   许晓斌著.目前是第一版 注意:最新版本的Eclipse代号Mars,已经直接集成了Maven,所以无需安装m2Eclipse插件. Eclipse下新建Maven项目 1.下载Maven安装包 进入M

eclipse下新建maven项目

eclipse下新建maven项目 1.1下载maven安装包 进入Maven官网的下载页面:http://maven.apache.org/download.cgi,如下图所示:\ 选择当前最新版本:"apache-maven-3.3.9-bin.zip",下载到本地,解压缩到本地磁盘下. 1.2 配置 修改默认的本地仓库位置 进入Maven安装目录下的conf子目录中,打开settings.xml进行配置修改. Maven默认的本地仓库位置是当前用户工作目录下的".m2/

MyEclipse下创建的项目导入到Eclipse中详细的图文配置方法

一.情景再现. 有些人比较喜欢用Myeclipse开发,有些人却比较喜欢用eclipse开发.但是其中有一个问题,Myeclipse里面的项目导入的时候出现了一个小小的问题. 如下: 二.说明问题 导入的项目不仅包显示在外面,而且不能部署到tomcat中. 那我们需要如何的配置呢? 三.处理问题. 1.导入在MyEclipse下创建的项目 2.把项目变成Web项目,在项目上右键-->Properties-->选择Project Facets. 3. 选中红线框住的两项(java和Dynamic

java压缩去除html空格和换行解决微信域名下不兼容

直接贴代码. java压缩去除html空格和换行解决微信域名下不兼容 调用:content = HtmlCompressor.compress(content); import java.io.StringReader;import java.io.StringWriter;import java.util.*;import java.util.regex.*; /******************************************* * 压缩jsp,html中的代码,去掉所有空