java cookie 跨域共享_JavaWeb 系统共享跨域cookie的实现
【實例簡介】
單點登錄系統整合了各個應用系統的身份認證。用戶在單點登錄系統中完成認證后,就可以訪問具有訪問權限的應用系統。為了減輕單點登錄系統的負擔,用戶的瀏覽器地址需要從單點登錄系統的網址重定向到應用系統的網址。通過使用跨域cookie方法,在兩種服務器環境里面實現了這種重定向。
12
北京聯合大學學報(自然科學版)
2012年11月
(如圖4),在域“.tesl. cookies.cn”和域“. cookies.域“. tell. cookies.cm”中的“ ISESSIONID”的值總是
cn”中,“ JsESSIONII”的值相等。這次 Javaweb系比域“. cookies.cn”中的 ISESSION”的值多相同
統只創建了一個 session,頭現了共享跨域 cookie。的字符串:“0000”和“:-1”。
另外,在 Apache Tomcat6.0的運行環境中,保
如果不使用單點登錄系統,而是直接登錄訪問
存 sessionId的 cookie名稱必須是人寫的 Java Web系統,那么系統生成的“ JSESSIONID”值包
“ JSESSIONID”。如果把名稱寫成小寫的含宇符串“0000和“:-1”(如圖8)。經過多次實
jsessionid”,那么 Java Web系統在跨域重定向之驗,每次杳看coki信息都是這種情況
前,會把小寫的“ jsessionid”存放在 cookie里面(如
由此假設,在 Websphere6.1的運行壞境中,
圖5)。因為系統在跨域重定向之后,域“. cookies. Java Web系統不能接受不包含字符串“0000”和“
cn”中只有小寫的“ jsessionid”,而在域名“test2
1”的“ JSESSIONID”。也就是說,在圖7中,保存
cookies.cn”中獲取不到大寫的“ JSESSIONID”在域“.test1. cookies.cn”中的“ JSESSIONID”的值能
(“ JSESSIONID”屬于域“. test1. cookies.cn”),所以被 Java Web系統使用,而保存在域“. cookies.cn”中
尢法實現共享 cookie中的 sessionld。系統在這種的“ SESSIONID”的值不能被使用。
情況下,會重新創建新的 session(“ JSESSIONID”如
在此假設的基礎上,將域“. cookies.cn”中的
圖6),最終,用戶通過單點登錄系統無法正常訪問“ JSESSIONID”的值進行擴展。在 Java Web系統跨
Java Web系統。
域重定向之前,先獲取 session的 session值,然后
2 Java Wel系統在 Websphere6.1中把宇符“000和:-1”添加到 session上面,
最后將 session保存在域“. cookies.cn”中的
共享跨域
cookIe
JSESSIONID”里面。實現共享跨域 cookie的代碼
如果把在 Apache Tomcat6.0中創建的 Java Web如下:
系統直接部署到 Websphere6.1里面,那么用戶通
/獲得
session
過單點登錄系統(http://testl.cookiescn)訪問
Http sessioN session =( HttpservletrEquest )
JavaWeb系統(htp:/test2. cookies,cn),在重定向 request. getSession()
后,就不能繼續訪問 Java Web系統。
//對 session進行擴展
使用 Http Watch Professional7.0工具查看
String sessionId =0000"+ session. getld()
cookie信息,在重定向前,有兩個“ JSESSIONID”(如
圖7)。通過多次實驗,每次的 cookie信息都顯示,
//為 session創建 cookie。
Overview Time Chart Headers Cookies Query String POST Data Content Strea
Cookie Name Direction Walu
Path Doma
ExPires
I5ESSIONID Received 4F187280585A2D10779773A0CB53218C /test test 1. cookies. cn (Session
JsESSIONID Received 4F18728058542D10779773A0CB53218C
Cookes, ch
(Session)
圖4跨域重定向前的 ISESSIONID
OrerviewTime Chart Headers Cookies Cache Query String POST Data Content Stream
Cookie Name DirectionValue
PathDomain
Expires
ISESSIONID Received FO2B8CAFBD5530C6EFOEBE62D33049B6 /test test1, cookies, cn (Session)
Received F02B8CAFBD5530C6EFOEBE62D33049B6 f
cookes. Cn
EssIon〕
圖5跨域重定向前的 jsessionid
Overview Time Chart Headers Cookies Cache Query String POST Data Content Stream
Cookie NameDirectionValue
PathDomain
Expires
]sessionid
F02B8CAFBD5530C6EFOEBE62D33049B6
CooKes, cn
JSESSIONID Received D7 DA0E2D86A7BDEFD5A70861BCE04A9F /test test2. cookies, cn (Session)
圖6跨域重定向后的 JSESSIONII
第26卷第4期
張二松等: Java Web系統共享跨域 cookie的實現
13
Cookie session Cookie= new Cookie(" ISESSIONID", Java Web系統。用戶在訪問 Java Web系統的整個過
session
程中,一直使用域“. cookies.cn”中的
/設置保存 cookie的路徑
∵ JSESSIONID”的值(如圖10)。由此證明前面的假
session Cookie. setPath("/")
設是正確的。
/設置可以訪問 cookie的域名
session Cookie sel Donain(". cookies. cn")
3結東語
用戶能夠通過單點登錄系統正常訪問包含了
通過借助 Http Watch Professional7.0工具,解
上面代碼的 Java wcb系統。查看 cookie(如圖9),決了共享跨域 cookie中的疑難問題。在 Apache
在域“. cookies.cn”中的“ JSESSIONID”的值,已經 Toma6.0和 Websphere6.1兩種服務器環境中,實
包含了字符串“0000”和“:-1”,并且和域“.test1.現了共享跨域 cookie,并完成了從單點登錄系統到
cookies.cn”中的“ JSESSIONID”的值相等。經過多 Java wel系統的重定向。最終,用戶能夠通過單點
次測試,用戶通過單點登錄系統都能正常訪問脊錄系統正常訪問 Java Web系統。
Overview Time Chart Headers Cookies Cache Query String POST Data Content Stream
Cookie NameDirectionValue
PathDomain
Ex
J5ESSIONID Received 0000gij 1 Kul GNLCIOGbRPU8i5v:-1
test1. cookies, cn (Session)
JsESSIONid Received gij1k2u 1 GNLCIOGbRPUBi5
cookies, cn
圖7跨域重定向前的 JSESSIONID
OverviewTime Chart Headers Cookies Cache Query String POST Data ContentStream
Cookie Name DirectionWalue
PathDomain
ISESSIONID Received 000OrvO0vF2Ln7NZ6zgDYdSN5Vj: -1
test2. cooh
( Sess
圖8直接訪問 Java Web系統時的 JSESSIONID
Overview Time Chart Headers Cookies Cache Query String POST Data Content Stream
Cookie Name Direction value
Path Domain
Expires
JSESSIONID Received 00001zQL75TNUMW36y Cmi 3q Ws0: -1 f
test1. cookies, cn (Session
I5ESSIONID Received 00001zQL75TNUMW36yXCmi3qWs0: -1
cookies, cn
Session
圖9跨域重定向前的 JSESSIONID
Overview Time Chart Headers Cookies Cache Query String POST Data Content eteam
Cookie Name Direction value
PathDomain
Expires
]5ES5IONID Sent
000012QL75TNUMiM'36yXCmi 3qWs0: -1
COokes. cn
(Session)
圖10跨域重定向后的 ISESSIONID
[參考文獻]
1」劉潤達,諸云強,宋佳,等.·種簡單跨域單點登錄系統的實現[J」.計算應用,2007,27(4):288-291
2]王俊才.一種基于Coke的單點登錄系統的設計與實現[J].計算機與數字工程,2008(4):94,95,111.
3]沈海波,洪帆.基于 Cookie的跨域單點登錄認證機制分析[J.計算機應用與軟件,2006,23(12):48-51
4]廖禮萍,鮑有文.基于跨域 Cookie的單點登錄系統的設計與實現[J].北京聯合大學學報:自然科學版,2008,22(4):
29-33
(責任編輯李亞青)
【實例截圖】
【核心代碼】
總結
以上是生活随笔為你收集整理的java cookie 跨域共享_JavaWeb 系统共享跨域cookie的实现的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JS时间的计算,剩余时间的计算
- 下一篇: dd命令测试U盘读写速度