卖逼视频免费看片|狼人就干网中文字慕|成人av影院导航|人妻少妇精品无码专区二区妖婧|亚洲丝袜视频玖玖|一区二区免费中文|日本高清无码一区|国产91无码小说|国产黄片子视频91sese日韩|免费高清无码成人网站入口

基于二級域名下Cookie共享的SSO

網(wǎng)上已經(jīng)有很多基于二級域名下Cookie 共享的SSO 的解決方案,對于原理大家可能都很了解,無非就是登錄一個系統(tǒng),產(chǎn)生一個令牌保存到Client 端的cookie 中,這個cookie 是基于主域名

網(wǎng)上已經(jīng)有很多基于二級域名下Cookie 共享的SSO 的解決方案,對于原理大家可能都很了解,無非就是登錄一個系統(tǒng),產(chǎn)生一個令牌保存到Client 端的cookie 中,這個cookie 是基于主域名的,然后再登錄其它二級域名下的系統(tǒng),就會直接讀取主域名下的Cookie 中的令牌,不要重新登錄,方面用戶使用多個系統(tǒng)。正好做到的項目中用到這個SSO 登錄驗證,自己調試中遇到一些問題,以及解決方案,跟大家分享一下。

我的項目中有兩個系統(tǒng),域名分別是A.test.com,B.test.com(舉例) ,test.com 是一級域名,A.test.com&B.test.com是二級域名。任務是要做到在A 登錄后可以直接進入B 系統(tǒng),B 系統(tǒng)會驗證Cookie 的令牌信息,正確的令牌才允許訪問進入系統(tǒng)。A 系統(tǒng)訪問路徑是http://A.test.com/x,B系統(tǒng)的訪問路徑是http://B.test.com/y。

好了,下面開始說明一下我的解決歷程:

1. 編碼

在A 系統(tǒng)登錄成功后寫入Cookie

....

Cookie cookie=new Cookie("token","令牌信息");//關于令牌名稱可以約定一個,到時B 系統(tǒng)會根據(jù)這個名稱去獲取令牌信息,信息令牌是加密處理r 后的字符串,如何加密這里不再贅述。

....

cookie.setDomain("test.com");//是基于一級域名的

cookie.setMaxAge(1800);//設定Cookie 的有效期

response.addCookie(cookie);

,

....

2. 測試檢查

通過http://A.test.com/x訪問后,Cookie 目錄出現(xiàn)一個administrator@test.com[1]的Cookie 文件,查看IE 緩存目錄,有一條名為x/的記錄,internet 地址為

Cookie:administrator@test.com/x,系統(tǒng)緩存目錄地址C:/Documents and

Settings/administrator/Local Settings/Temporary Internet Files,我的是XP 系統(tǒng),Cookie 目錄地址C:/Documents and Settings/administrator/Cookies。

,

如果兩個系統(tǒng)直接是基于域名跑的,http://A.test.com,http://B.test.com,就沒有后面那個修改webapp name的問題了,只要確保寫Cookie 時,setDomain(一級域名) ,這里是"test.com" 。

標簽: