weblogic下同域不同埠下的跨域問題解決
阿新 • • 發佈:2019-01-24
環境:同一臺伺服器,同一個Weblogic應用程式,分別建兩個域,兩個域IP一樣,埠不同.一個域裡放Web應用A,一個放Web應用B.
操作:使用者訪問A程式的時候,A程式會返回一個連結,讓使用者去訪問B.
問題:當用戶成功訪問到A給出的連結之後,與A的Session就丟失了
解決方法:
在A或B的WebInfo下建一個weblogic.xml,裡面新增如下配置:
通過在weblogic.xml中進行如下設定後,問題解決。
<session-descriptor> <session-param> <param-name>CookieName</param-name> <param-value>TS</param-value> </session-param> </session-descriptor>
【問題分析】
同一個Server ServerName = Server01,同一個Weblogic,分別建立兩個Domain,Domain01(port-8018)和Domain02(port-8008),將應用App1部署在Domain01,將應用App2部署在Domain02,同時啟動這兩個Domain,如果完全是預設配置,單獨訪問兩個應用是沒有問題的,但是在同一個客戶端如果訪問App1之後再訪問APP2會發現App1的Session丟失。
客戶端在訪問App1時,Domain01會在該客戶端保留一個名為 JSessionID的Cookie,記錄了Domain01的資訊,JSessionID為Weblogic cookie-name的預設值,當同一個客戶端訪問App2時,該客戶端Cookie中JSessionID的值被Domain02重新整理,此時如果在之前已經開啟的IE中繼續訪問App1會發現Session丟失(JSessionID已經被Domain02重新整理!)。