文档章节

应用的Session冲突

陌羽蕲moyuqi
 陌羽蕲moyuqi
发布于 2012/12/26 23:20
字数 500
阅读 3794
收藏 10

使用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-descriptor2.  <session-param3.  <param-name>CookieName</param-name4.  <param-value>HADFCookie</param-value5.  </session-param6.  </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

 

© 著作权归作者所有

共有 人打赏支持
陌羽蕲moyuqi
粉丝 0
博文 1
码字总数 500
作品 0
福州
程序员
私信 提问
加载中

评论(1)

jay_
jay_
多谢 正好遇到这个问题
laravel多站点session冲突的解决方案

在同一台服务器上使用nginx将多个laravel应用部署到不同端口,在使用中会出现session冲突的问题,即A应用的session被B应用同名session使用,反过来B应用对session的更改会导致A应用发生异常。...

冠岑
2016/10/05
100
1
报表session与应用session常识普及

报表session与应用session 报表集成到项目中可能会有一个疑问就是系统应用和报表应用在一个web服务器下,那系统session和报表session是不是一个session呢?如果不是那会不会有冲突呢? 是:不...

九月你好123
2015/09/28
34
0
【★★★★★】提高PHP代码质量的36个技巧

http://www.cnblogs.com/52php/p/5658031.html 不要直接使用 $_SESSION 变量 某些简单例子: $_SESSION['username'] = $username;$username = $_SESSION['username']; 这会导致某些问题. 如果......

tinywan1227
2016/09/20
0
0
【转】关于B/S架构应用程序的权限设置分析和总结

来自:http://www.cnblogs.com/zhouxunyu/p/3790122.html 分析:不同的用户登录到系统后赋予不同的操作权限,而用户存在于数据库中,标识用户权限的字段 也保存在数据库中的用户表中。 问题:...

华山青竹
2014/06/16
0
0
Weblogic两个域 session冲突

转自:http://hi.baidu.com/576699909/blog/item/9d93db1fe0cdc2e01ad57659.html。 在将LWAP开发的应用迁移为Oracle ADF来开发的过程中,LWAP和ADF应用都部署在同一个Weblogic服务器的两个D...

叶落花开
2012/04/12
0
0

没有更多内容

加载失败,请刷新页面

加载更多

当S8遇上边缘计算:谈阿里云ENS对直播业务场景的支撑

摘要: 类似S8赛事这样的大型活动直播的特点和技术挑战是什么?为什么业务要下沉到边缘?自建边缘节点和与云服务厂商合作到底该如何选择?边缘节点服务(ENS)又是如何进行技术支撑?提供的针...

阿里云官方博客
12分钟前
1
0
supervisor安装配置

supervisor安装配置 安装 wget -c https://files.pythonhosted.org/packages/44/60/698e54b4a4a9b956b2d709b4b7b676119c833d811d53ee2500f1b5e96dc3/supervisor-3.3.4.tar.gztar -zxvf su......

jackmanwu
23分钟前
1
0
laravel定时器

民间高手: https://blog.csdn.net/zhezhebie/article/details/79205414 官方文档: https://laravel-china.org/docs/laravel/5.5/scheduling/1325...

vio小黑
46分钟前
0
0
Apache Zeppelin安装及使用

Apache Zeppelin官网:http://zeppelin.apache.org/ Apache Zeppelin介绍:A web-based notebook that enables interactive data analytics. You can make beautiful data-driven, interacti......

GordonNemo
47分钟前
4
0
关于python开发多个项目环境配置Anaconda

关于Anaconda用来管理Python的包和环境 下载并安装Anaconda 创建项目:windows键+R ==> 进入CMD => 输入conda create -n 项目名称 python=3 conda info -e 查看项目以及项目所在的位置,默认...

上官清偌
48分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部