Websphere多个应用session相互覆盖问题解决办法
来源:互联网 发布:mac os 10.13原版镜像 编辑:程序博客网 时间:2024/06/07 11:48
原文链接: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-nameJSESSIONID如未设置,默认为“JSESSIONID”cookie-pathNULL如未设置,默认为“/”cookie-domainNULL如未设置,默认为发放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)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覆盖的问题,用转载的方法即可解决。
- Websphere多个应用session相互覆盖问题解决办法
- Tomcat 配置多个WEB应用的问题解决办法
- 同一个tomcat应用,不同二级域名session共享问题解决办法
- bootstrap样式无法覆盖问题解决办法
- c#中Session丢失问题解决办法
- 关于c# SESSION丢失问题解决办法
- 关于c# SESSION丢失问题解决办法
- c#中Session丢失问题解决办法
- 关于c# SESSION丢失问题解决办法[转]
- WebSphere 多个应用间的单点登录配置,SSO
- 多个应用相互传值
- websphere中发布ear包设置在多个war包中session共享
- tamcat多个应用实现session共享
- Hibernate使用原生SQL多表查询时字段名相同导致查询数据覆盖问题解决办法
- C# WPF 多个window 相互覆盖的次序控制 不用topmost
- 关于c# 删除文件夹时SESSION丢失问题解决办法
- IE8 jquery Ajax 导致Session 丢失问题解决办法
- iframe跨域访问session丢失问题解决办法
- Java静态变量的初始化(static块的本质)
- Blocks Programming Topics
- 【DFS】COGS 967. 观光旅游
- 比较器的使用
- spring mvc 返回json 乱码
- Websphere多个应用session相互覆盖问题解决办法
- 怎样实现cmd命令窗口的快速复制粘贴操作
- test
- cocos2dx教程之多点触控的实现
- strchr函数的简单实现
- 管道截获win 32 exe 的printf消息
- 关于报表里SQL执行速度的问题
- Java根据文件头判断文件类型
- 冒泡排序