iframe嵌套 session失效问题

在项目A中通过iframe嵌套项目B时遇到session失效问题,即使使用了单点登录。问题在于同IP下,B项目的set-cookie指令覆盖了A的session。解决方案是在weblogic中为每个应用设置不同的cookie-name,例如在Weblogic.xml中添加<session-descriptor><cookie-name>JSESSIONID1</cookie-name></session-descriptor>。
摘要由CSDN通过智能技术生成

最近在做项目是遇到一个比较恶心的问题: 项目A要iframe嵌套项目B的页面, 使用了单点登录的方式 嵌套项目B页面后, 再访问A项目菜单 居然session失效了, 这个问题苦恼了好久,最终在网上找到了解决方法,如下:(注:我这边项目A和项目B是同ip 不同端口)

首先要搞懂出现这种情况的原因:

首先要明白 客户端用cookie保存了sessionID,当我们请求服务器的时候,会把这个sessionID一起发给服务器,服务器会到内存中搜索对应的sessionID,如果找到了对应的 sessionID,说明我们处于登录状态,有相应的权限;如果没有找到对应的sessionID,这说明:要么是我们把浏览器关掉了(后面会说明为什 么),要么session超时了(没有请求服务器超过20分钟),session被服务器清除了,则服务器会给你分配一个新的sessionID。你得重 新登录并把这个新的sessionID保存在cookie中。  

其次IP相同的两个session对应的cookie是一样的,IP相同认为是同一个域,接收了B的set-cookie指令,把对应的cookie内容覆盖了,其中包括jsessionid,造成A的session丢失。 如果IP不同,则不会发生这个问题。。

解决方案如下:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值