日本雅虎官网棒球比分:J2EE社區

茍有恒,何必三更起五更眠;
最無益,只怕一日曝十日寒.
posts - 241, comments - 318, trackbacks - 0, articles - 16

同一服務器 應用的Session沖突

Posted on 2016-05-06 12:33 xcp 閱讀(1411) 評論(0)  編輯  收藏 所屬分類: 雜亂無章

棒球比分大小怎么算 www.355548.live 使用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超時時間  //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中的名稱 //blog.shilimin.com/338.htm




名稱: ?4C.ESL | .↗Evon
口號: 遇到新問題?先要尋找一個方案乄而不是創造一個方案こ
mail: 棒球比分大小怎么算


{ganrao} 海南飞鱼彩票开奖结果查询 意甲排名 体育彩票快速赛车规律 麻将规则 丫丫陕西麻将_俱乐部 香港开奖现场直播结果+开奖记录 浙江麻将怎么玩 精准免费三码中特 韩国pc28官网 欧冠巴萨 pc蛋蛋在线 麻将血流成河下载 财神捕鱼为什么总是输 幸运农场赚钱方法 大庆麻将规则 单双中特期期公开