iframe嵌套session失效问题
最近在做项⽬是遇到⼀个⽐较恶⼼的问题: 项⽬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不同,则不会发⽣这个问题。。
解决⽅案如下:
iframe嵌套页面加载慢
weblogic修改⽅法
设置各个应⽤使⽤不同的cookie-name。
weblogic的设置(设置不同的cookie-name):
请在l添加如下代码
<session-descriptor>
<cookie-name>JSESSIONID1</cookie-name>
</session-descriptor>
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论