關於多個應用在同一個server中部署時出現cookies被覆蓋的解決方案

目錄

1 產生問題的配置... 2

2 產生問題的原因... 2

3 解決辦法... 2

1)相關參數的解釋... 2

2)解決辦法一... 3

3)解決辦法二... 3

4)解決辦法三... 3

4 參考資料... 4 

 

1 產生問題的配置

<session-param>

     <param-name>CookieName</param-name>

     <param-value>TestSessionID</param-value>

   </session-param>
我們發現如果兩個web應用都使用同樣這個參數,互相訪問就會有session被覆蓋的問題

2 產生問題的原因

假如有倆個應用app1,app2同時部署在同一個域domain1中的同一個集羣中或則會同一個server中,客戶端在訪問app1時,這個server會在該客戶端保留一個名爲 JSessionIDCookie,記錄了app1的信息,JSessionIDWeblogic cookie-name的默認值,當同一個客戶端訪問app2時,該客戶端CookieJSessionID的值被app2刷新,此時如果在之前已經打開的IE中繼續訪問app1會發現Session丟失(JSessionID已經被server刷新!)。倆個cookies的名字相同,造成了訪問後一個應用覆蓋了前一個應用的cookies,因此,倆個應用部署在同一個server中會出現session被覆蓋的問題。

 

補充一點,如果這倆個應用部署在倆個域中的相同server中,也會出現上述問題。原因與上面相似。

3 解決辦法

1)相關參數的解釋

    

CookieDomain

Null

Specifies the domain for which the cookie is valid. For example, setting CookieDomain to .mydomain.com returns cookies to any server in the *.mydomain.com domain.

The domain name must have at least two components. Setting a name to *.com or *.net is not valid.

If unset, this parameter defaults to the server that issued the cookie.

For more information, see Cookie.setDomain() in the Servlet specification from Sun Microsystems.

CookieName

JSESSIONID

Defines the session cookie name. Defaults to JSESSIONID if unset. You may set this to a more specific name for your application.

 

2)解決辦法一

修改各自應用的weblogic.xml,使cookies文件的名字不同

例如:

App1中的weblogic.xml文件修改爲

<session-descriptor>
 <session-param>
 <param-name>CookieName</param-name>
 <param-value>myCookie1</param-value>
 </session-param>
 </session-descriptor>

 

App2中的weblogic.xml文件修改爲

<session-descriptor>
 <session-param>
 <param-name>CookieName</param-name>
 <param-value>myCookie2</param-value>
 </session-param>
 </session-descriptor>

 

3)解決辦法二

訪問App1時用IP來訪問,訪問App2時用域名來訪問。

4)解決辦法三

不要使用CookieName參數,默認的cookies名字即爲JSESSIONID,因爲倆個應用的JSESSIONID肯定是不同的。

4 參考資料

http://www.blogjava.net/mark1207/archive/2008/04/01/190134.html

http://download.oracle.com/docs/cd/E13222_01/wls/docs81b/webapp/index.html

http://download.oracle.com/docs/cd/E13222_01/wls/docs81b/webapp/weblogic_xml.html#1038491

 

作者:小陳,新進入我的團隊,基本功紮實,善於學習。以極大的熱情開始自己的新工作。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章