SSO 單點登入 Session共享

2021-08-25 14:41:49 字數 1419 閱讀 4410

背景:

tomcat集群可能因為兩次訪問的session不一致導致登入失敗,無法訪問後續頁面;

解決可以通過tomcat互相進行session共享實現,但是這僅僅試用於小集群;

如果集群變大,就會有大量session進行互相共享,負載很大;

sso

sso英文全稱single sign on,單點登入。sso是在多個應用系統中,使用者只需要登入一次就可以訪問所有相互信任的應用系統。

通過在redis集中管理使用者的session,其它服務的工程都為無狀態的tomcat,這樣實現的單點登入,集群的大小就不會受到限制。

校驗表單資訊;

生成uuid作為token傳送給redis;

session存入redis,key為token,使用者資訊為value,設定過期時間;

返回token存入客戶端cookie;

查詢訂單(token過期)

從cookie中獲取token查詢redis;

redis返回不存在,頁面跳轉到登入頁;

查詢訂單(token未過期)

從cookie中獲取token查詢redis;

redis存在token,重置該token過期時間;

返回使用者登入資訊,顯示訂單資訊;

跨域請求:如果 網域名稱不同 或者 埠不同,瀏覽器視作跨域,不允許請求資料

原理定義mycall方法;

通過js跨域載入檔案,引數為callback=mycall;

伺服器識別callback,把json資料拼接為mycall()變成js語句;

瀏覽器接收到返回資料後會直接執行js語句,從而呼叫mycall方法;

使用

客戶端修改ajax的datatype:datatype:"jsonp"服務端修改controller:增加引數callback

@responsebody

public object getuserbytoken(@pathvariable string token, string callback)

return result;

}

SSO單點登入

單點登入sso single sign on 就是在多個系統共存的環境下,使用者在一處登入 就不用在其他系統中登入,也就是使用者的一次登入就可以得到其他所有系統的信任。要點 儲存信任 驗證信任 最簡單實現sso的方法就是cookie,實現流程 然而cookie有如下缺點 1 cookie不安全 2 ...

sso單點登入

一 什麼是單點登入sso single sign on sso是一種統一認證和授權機制,指訪問同一伺服器不同應用中的受保護資源的同一使用者,只需要登入一次,即通過乙個應用中的安全驗證後,再訪問其他應用中的受保護資源時,不再需要重新登入驗證。二 單點登入解決了什麼問題 解決了使用者只需要登入一次就可以...

sso單點登入

1 sso single sign on 單點登入 解決了使用者只需要登入一次就可以訪問所有相互信任的應用系統,而不用重複登入,對使用者資訊進行統一管理。2 session共享 分布式中,為了提公升集群效能,我把使用者的session資訊儲存到redis中,key的格式例如 user session...