現有多個系統web1,web2,web3...
用戶張三,在web1裡用戶名密碼是user1/123,在web2裡用戶名密碼是zhangsan/456,在web3裡用戶名密碼是abc/789……
這些多個系統的用戶名密碼存放在不同數據庫中,但是每個數據庫裡都有“工號”這個字段,且為必填項。
現在將這多個系統用CAS做單點登錄,這多個數據庫如何通過“工號”這個字段統一?
剛看到的一個思路:
單對多模式;一個用戶使用不同憑證登錄不同系統;| 給sina一個憑證,sina用戶就可以登錄本系統了;| 然後基於傳遞過來的用戶信息,創建一個本系統用戶,保存相應憑證;下次就可以再次直接使用了;
這個具體怎麼實現?
1.首先你要實現一個過濾器,功能是檢測登錄狀態,這個過濾器最好打成jar包,然後你所有受信任的項目都要導入這個過濾器,
2.過濾器的內容是:檢查登錄狀態,若已經登錄則直接跳轉到請求畫面,沒有登錄則調到cas認證中心進行認證。
3.何為cas認證中心:你需要利用Cookie映射token(密匙)的方式在內存中存儲登錄狀態的信息
4.cas認證中心為一個獨立的項目,它能夠認證不同項目的登錄請求,即不管是哪個項目的賬戶登錄,登陸成功,生成token,返回Cookie,