Weblogic跨域session冲突解决办法
一、现象: 在WebLogic中,有两个不同域A(端口:9000)和B(端口:8000),应用CA在域A中,应用CB在域B中,进行如下操作: 1、先登录应用CA,再登录应用CB,然后,切换回应用CA,发现应用CA的Session丢失; 2、应用CA中有指向应用CB的链接,登录应用CA,点击指向应用CB的链接,应用CA的Session丢失; 二、原因: 因Cookie冲突导致Session丢失。 Cookie的覆盖机制: 如果一个新的cookie与一个已存在的cookie的NAME、Domain和Path属性值均相同,则旧的cookie会被丢弃。(参考: http://code.google.com/p/browsersec/wiki/Part2#Same-origin_policy_for_cookies ) WebLogic的Cookie相关配置: 属性名 默认值 值 cookie-name JSESSIONID 如未设置,默认为“JSESSIONID” cookie-path NULL 如未设置,默认为“/” cookie-domain NULL 如未设置,默认为发放cookie的服务器的域 由于没有在Weblogic.xml配置文件中对cookie的相关属性值进行配置,因此应用CA和应用CB的cookie的Name、 Domain和Path属性值均为默认值