sso單點登錄之跨域cookie共享 (跨域緩存共享)


使用cookie的兩個屬性

  1. domain-域

    通過設置這個屬性可以使多個web服務器共享cookie。domain屬性的默認值是創建cookie的服務器的主機名。不能將一個cookie的域設置成服務器所在的域之外的域。

    舉個例子:

    讓位於a.taotao.com的服務器能夠讀取b.taotao.com設置的cookie值。如果b.taotao.com的頁面創建的cookie把 它的path屬性設置為”/”,把domain屬性設置成”.taotao.com”,那么所有位於b.taotao.com的網頁和所有位於a.taotao.com的網頁,以及位於taotao.com域的其他服務器上的網頁都可以訪問(或者說是得到)這個cookie。

  1. path-路徑

    表示創建該cookie的服務器的哪些路徑下的文件有權限讀取該 cookie,默認為/,就是創建該cookie的服務器的根目錄。

具體實現

A機host設置如下: 
127.0.0.1 sso.taotao.com
172.16.30.123 portal.taotao.com
B機host設置如下: 
127.0.0.1 portal.taotao.com
172.16.30.123 sso.taotao.com

同時開啟兩台服務器,sso為單點登錄系統,portal為門戶系統,portal首頁點擊登錄按鈕,可連接到sso系統的登錄模塊,登錄成功后,sso系統設置cookie屬性如下:

token="0821A9439FE4466395A2F4086538AEB4"
Cookie cookie = new Cookie("TT_TOKEN", token);
cookie.setPath("/");
cookie.setDomain("taotao.com");
response.addCookie(cookie);

此時portal服務器所在機器的瀏覽器得到響應信息如下 :

这里写图片描述

瀏覽器會根據cookie的domain屬性進行判斷訪問哪個域會攜帶這個cookie,因為com.taotao.portal屬於taotao.com的子域,所以在這個瀏覽器上訪問portal.taotao.com服務器下的所有路徑都會攜帶這個cookie 。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM