WebSphere服务器同一IP下多个应用sessionId覆盖问题

同一IP下部署多个应用,访问A应用进行登录,登录后访问B应用,sessionId获取为NULL

原文链接:https://my.oschina.net/moyuqi/blog/98475

session是通过在客户端生成一个cookie,所有请求会带上这个cookie。一个cookie的NAME、Domain和Path属性值均相同,则会覆盖,若未设置Domain域,则域为ip(不包括端口),因此应用A的session被应用B的session覆盖了。

经测试:tomcat、weblogic、websphere的session默认都是JSESSIONID 为key来识别的,因此在没有特别设置下,同一个域下的多个应用session会互相覆盖。 

修改方式:将B项目server下属性Cookie名更改为B_JSESSIONID,重启server,获取sessionId成功.

补充:关于IP  原文链接:https://my.oschina.net/ufopw/blog/892583

问题描述:
3个WebSphere集群,通过一个IP不同端口去访问,从A进入B,B可用,A的session丢失,点击A,B的session丢失,在WebSphere控制台不启用cookie和设置cookie路径均无效
网上资料:
IP相同的两个session对应的cookie是一样的,而不幸的是sessionID就保存在cookie中,这样先访问A,再访问B的时候,B的sessionid会覆盖A的sessionid。这个事情没办法解决,所以你不要搞两个端口,最好是搞两个IP。原来都是cookie惹的祸,它不会区分端口,造成这多个站点不断的后来的覆盖前面的,从而造成session的丢失。问题解决了,将相互有引用的应用架构在不同的虚拟主机中,或者映射不同的IP。

  

 

posted @ 2021-01-11 14:31  Yzzzzzzzzz  阅读(324)  评论(0编辑  收藏  举报