原文链接: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覆盖的问题,用转载的方法即可解决。

Websphere多个应用session相互覆盖问题解决办法的更多相关文章

  1. C# WPF 多个window 相互覆盖的次序控制 不用topmost

    原文:C# WPF 多个window 相互覆盖的次序控制 不用topmost   WindowInteropHelper mianHanel = new WindowInteropHelper(Mai ...

  2. dedecms SESSION变量覆盖导致SQL注入漏洞修补方案

    dedecms的/plus/advancedsearch.php中,直接从$_SESSION[$sqlhash]获取值作为$query带入SQL查询,这个漏洞的利用前提是session.auto_st ...

  3. 【FAQ】HMS Core推送服务与本地创建通知消息如何相互覆盖?

    我们知道,单独使用HMS Core推送服务或本地创建通知消息,都可以实现通知消息的覆盖,方式分别为: 1.本地创建通知消息(简称本地通知消息) 通过notificationManager.notify ...

  4. 关于c# SESSION丢失问题解决办法

    我们在用C#开发程序的时候经常会遇到Session很不稳定,老是数据丢失.下面就是Session数据丢失的解决办法希望对您有好处.1.在WEB.CONFIG文件中修改SESSION状态保存模式,如:& ...

  5. WebAPI中无法获取Session对象的解决办法

    在MVC的WebApi中默认是没有开启Session会话支持的.需要在Global中重写Init方法来指定会话需要支持的类型 public override void Init() { PostAut ...

  6. ASP+Access UTF-8 网页乱码问题解决办法

    用ACCESS数据库和ASP做网站时用UTF-8编码有时会出现乱码,再者网页出错或者刷新页面后就是乱码,如果数据库取值乱码在开头加上<%@LANGUAGE="VBSCRIPT" ...

  7. Windows XP系统下添加任务计划常出现问题解决办法

    Windows XP系统下添加任务计划常出现问题解决办法 计划任务就是让电脑在指定的时间内执行指定的动作(计划动作),这些动作可以是一个程序,也可以是一个批处理,但是至少是可以运行的(通俗一些就是双击 ...

  8. Open Sans字体兼容问题解决办法[font-face]

    参考:http://www.tantengvip.com/2014/11/open-sans/ 1.font-face使用方法 font-face是CSS3中的一个模块,主要是把自定义的Web字体嵌入 ...

  9. 易通电脑锁2007V6.3.3.3无法卸载问题解决办法

    易通电脑锁2007V6.3.3.3无法卸载问题解决办法把原版文件拷贝回去.bat@echo offcolor 2Fecho 该批处理会把易通电脑锁2007版原文件拷贝回去,解决易通电脑锁卸载时出现的运 ...

随机推荐

  1. Linux环境系搭建Git服务器过程全纪录

    Last :: from 139.199.180.186 [root@VM_219_131_centos ~]# yum install curl-devel expat-devel gettext- ...

  2. pyspark 编写 UDF函数

    pyspark 编写 UDF函数 前言 以前用的是Scala,最近有个东西要用Python,就查了一下如何编写pyspark的UDF. pyspark udf 也是先定义一个函数,例如: def ge ...

  3. VMWare ESX/ESXi 虚拟机硬盘的厚置备(Thick Provision)与精简置备(Thin Provision)的转换

    VMWare ESX/ESXi 有两种硬盘置备方式,厚制备(thick)和精简置备(Thin) 有时可能会由于性能问题或磁盘空间需要将虚拟机磁盘在两种模式间进行互转,虽然在虚拟机配置页面是没有办法修改 ...

  4. VMware文章总结

    Vmware Vsphere6.5 + Vcenter6.5安装简介:http://www.ctoclubs.com/?p=296 安装VCSA6.5(vCenter Server Appliance ...

  5. 【Java】自动类型转换规则

    自动类型转换遵循下面的规则: 若参与运算的数据类型不同,则先转换成同一类型,然后进行运算. 转换按数据长度增加的方向进行,以保证精度不降低.例如int型和long型运算时,先把int量转成long型后 ...

  6. spring c3p0 配置

      spring c3p0 配置   <?xml version="1.0" encoding="UTF-8"?> <beansxmlns=& ...

  7. 我为什么要学Go语言

    # 我为什么要学Go语言 ### 公司的强烈推荐---之前也了解过Go语言并没有觉得有什么了不起,Go能做的其他语言都能做. ### 网上查找学习Go语言的理由---网上大体有两类人,一类说Go是大公 ...

  8. eclipse Maven项目Context root 为空,不能修改

    从SVN下载项目的时候,遇到过这种问题,导入下来的项目没有Context root 的名字,导致报错. 看了网上的解决办法,不行,于是研究了下,得出了解决办法,这里来记录一下. 先将Maven项目下载 ...

  9. [转]javaweb学习总结(二十九)——EL表达式

    原文地址:https://www.cnblogs.com/xdp-gacl/p/3938361.html 一.EL表达式简介 EL 全名为Expression Language.EL主要作用: 1.获 ...

  10. <[长期赢利:股票价值投资方法]>读书笔记

    书在这里 风险是因为不够专业 在股市里,要不断拓宽自己的眼界 投资如长跑,贵在坚持 长线为主,短线为辅:重视选股,减少盲目:耐心等待,春天回来 除了要与银行利息比以外,还要了解当时股票的平均市盈率,再 ...