tomcat 配置不同二级域名间session共享 还要改源码 累。。。

关键字: 二级域名, session

     Tomcat下,不同的二级域名,Session默认是不共享的,因为Cookie名称为JSESSIONID的Cookie根域是默认是没设置的,访问不同的二级域名,其Cookie就重新生成,而session就是根据这个Cookie来生成的,所以在不同的二级域名下生成的Session也不一样。找到了其原因,就可根据这个原因对Tomcat在生成Session时进行相应的修改(注:本文针对Tomcat 6.0)。

    在Tomcat 对Request的实现类中org.apache.catalina.connector.Request,找到

 

Java代码 
  1. ......  
  2.   
  3. protected void configureSessionCookie(Cookie cookie) {  
  4.         cookie.setMaxAge(-1);  
  5.         String contextPath = null;  
  6.         if (!connector.getEmptySessionPath() && (getContext() != null)) {  
  7.             contextPath = getContext().getEncodedPath();  
  8.         }  
  9.         if ((contextPath != null) && (contextPath.length() > 0)) {  
  10.             cookie.setPath(contextPath);  
  11.         } else {  
  12.             cookie.setPath("/");  
  13.         }  
  14.           
  15.         <span style="color: #ff0000;">cookie.setDomain("xxx.com");</span>  
  16.           
  17.         if (isSecure()) {  
  18.             cookie.setSecure(true);  
  19.         }  
  20.     }  
  21.   
  22. ...  

 添加上面加注红色的部分即可,在不同的二级域名下,用Request获取Session都将是同一个。

    也在在Tomcat的配置文件(D:/Tomcat6.0/conf/catalina.properties)中添加

Java代码 
  1. herostarDomain=xxx.com  

 在上面的实现类中,红色部分做相应的修改

Java代码 
  1. ...  
  2.         if(null !=System.getProperty("herostarDomain") && ! "".equals(System.getProperty("herostarDomain")) )  
  3.             cookie.setDomain(System.getProperty("herostarDomain"));  
  4.           
  5. ....  

 

好了,OK!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值