原文链接:http://my.oschina.net/moyuqi/blog/98475

使用apache反向代理解决在应用A使用Iframe嵌入应用B的功能而产生的跨域问题后,应用B的功能能正常使用了。但也产生了另外一个问题:打开应用A的任何页面都会跳转主页,问题原因是:session丢失。

具体分析:

session是通过在客户端生成一个cookie,所有请求会带上这个cookie。一个cookie的NAME、Domain和Path属性值均相同,则会覆盖,若未设置Domain域,则域为ip(不包括端口),因此应用A的session被应用B的session覆盖了。

经测试:tomcat、weblogic、websphere的session默认都是JSESSIONID 为key来识别的,因此在没有特别设置下,同一个域下的多个应用session会互相覆盖。

解决办法:

设置各个应用使用不同的cookie-name,或者将JSESSIONID的path路径设置为不同。

1)WebLogic的Cookie相关配置:weblogic.xml

属性名

默认值
cookie-name JSESSIONID 如未设置,默认为“JSESSIONID”
cookie-path NULL 如未设置,默认为“/”
cookie-domain NULL 如未设置,默认为发放cookie的服务器的域
示例代码:  
1.  <session-descriptor>  2.  <session-param>  3.  <param-name>CookieName</param-name>  4.  <param-value>HADFCookie</param-value>  5.  </session-param>  6.  </session-descriptor>


 
          2. WebLogic如何设置session超时时间  http://tonyaction.blog.51cto.com/227462/201900
 
 

2)websphere的设置(设置不同JSESSIONID的path)

应用程序->企业应用程序-> [Application Server] ->

会话管理->1.覆盖会话管理(需打钩).

会话管理->2.启用 cookie(需打钩)->修改'Cookie路径'

3)Tomcat的设置(设置不同JSESSIONID的path)

修改tomcat/conf/server.xml:

1.tomcat5修改方法

在启动项中增加org.apache.catalina.SESSION_COOKIE_NAME参数

linux

JAVA_OPTS=’-Dorg.apache.catalina.SESSION_COOKIE_NAME=yousessionname‘

win

set JAVA_OPTS=”-Dorg.apache.catalina.SESSION_COOKIE_NAME=yousessionname“

2.tomcat6和tomcat7修改方法相同

在Context容器标签上增加sessionCookieName参数

<Context path=”/” docBase=”webapp” reloadable=”false” sessionCookieName=”yoursessionname”></Context>

还可以加上sessionCookiePath

<Context ... sessionCookiePath="/" > ... </Context>

延伸阅读:tomcat修改jsessionid在cookie中的名称 http://blog.shilimin.com/338.htm

小龙评论:WebSphere默认的AppSrv01下部署了两个应用App1和App2,如果App1和App2都是用相同的平台开发,即用户登录之后都通过session和cookie把用户登录的信息管理起来,并且session和cookie中的参数名称都是相同的,也会出现session覆盖的问题,用转载的方法即可解决。

最新文章

  1. Asp.net Boilerplate之AbpSession扩展
  2. Lesson 22 A glass envolops
  3. Java线程并发:知识点
  4. apache ab下载测试
  5. CUBRID学习笔记 1 简介 cubrid教程
  6. yii 事物
  7. python-面向对象(股票对象举例)
  8. Cocos2d-x FlappyBird
  9. (转载)OC学习篇之---代理模式
  10. 100-The 3n + 1 problem
  11. XPath总结(转)
  12. 老李推荐:第5章6节《MonkeyRunner源码剖析》Monkey原理分析-启动运行: 初始化事件源
  13. Linux常用操作命令(三)
  14. jdbc连接阿里云服务器上的MySQL数据库 及 数据库IP限制
  15. Kubernetes实战:目录
  16. Excel VBA 连接各种数据库(一) VBA连接MySQL数据库
  17. IDEA项目的复制操作
  18. ElasticSearch实践系列(一):安装
  19. noip第15课作业
  20. CentOS 6.5安装配置LAMP服务器(Apache+PHP5+MySQL)的方法

热门文章

  1. 如何解压POSIX tar archive文件
  2. pandas入门——loc与iloc函数
  3. 01-老马jQuery教程-jQuery入口函数及选择器
  4. 针对后台TCP服务F5健康检查配置
  5. [转]mysql delete 使用别名 语法
  6. Sql server在另一台服务器,在Visual Studio 中没问题,IIS中 提示“在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误。。。。”
  7. NSDateFormater格式化参数汇总
  8. java获取classpath以外的路径
  9. Java IO流学习
  10. 枚举Enum和常量0之间的恩怨