• Websphere多个应用session相互覆盖问题解决办法


    原文链接: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-descriptor2.  <session-param3.  <param-name>CookieName</param-name4.  <param-value>HADFCookie</param-value5.  </session-param6.  </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覆盖的问题,用转载的方法即可解决。

  • 相关阅读:
    1.JMeter===添加响应断言
    1.Linux下Git入门学习
    14.Selenium+Python使用火狐浏览器问题解决
    13.Selenium不再支持PhantomJS
    12.Selenium+Python案例 -- 今日头条(获取科技栏目的所有新闻标题)
    11.Selenium+Python案例--百度
    10.Selenium+Python+任务计划程序实现定时发送邮件
    The connection to adb is down and a sever error has occured的解决
    Eclipse与github整合完整版
    GIT命令整理
  • 原文地址:https://www.cnblogs.com/wenlong/p/3684233.html
Copyright © 2020-2023  润新知