同域下單點登入分析 單點登入講解(2)

2021-09-12 06:56:01 字數 1790 閱讀 7342

本專案主要講解的是單點登入系統的原理及其實現。

本章主要講解的是同域下單點登入分析。

流程圖雖然看著複雜,但大家不要被嚇到啦^ _ ^,請大家參照著流程路,聽***細細道來~~

1)未登入訪問業務系統

由於沒有token,客戶端filter控制其進行登入操作,並將原始的url作為請求的引數。

2)使用者執行登入操作

進入服務端的userloginservlet進行登入操作。進入登入頁時,獲取url中的引數——原始的origrul,將其作為request物件的屬性,方便後人獲取,並且跳轉到服務端的登入頁面。

使用者提交表單,服務端獲取表單中資訊後,到資料庫中進行查詢。若登入失敗,則返回原來的登入頁面,並攜帶原來的url,將原始的url作為表單的隱藏屬性

若登入成功則:

1.生成token。

2.將token與其對應的user放到全域性唯一資料結構中,方便所有人進行獲取。

3.給該使用者設定乙個cookie,值為token,使用者在下次訪問的時候就會攜帶此cookie,服務端也就可以通過該cookie對其身份進行驗證。

4.判斷原始url是否為空,若不為空則跳轉到原始url頁面,否則跳轉到成功登入頁面。

在使用者要跳轉到原始url頁面的時候,被客戶端的filter攔截,進行有無token的驗證,由於經過登入操作在cookie中已經生成了token,故filter傳送http通訊請求服務端進行token有效性的驗證,並將token作為請求引數。

服務端的tokenvalidateservlet獲取引數中的token後,到全域性唯一資料結構中查詢有無該token對應的user。若沒有,則證明該token可能已經失效或是偽造的,則向客戶端返回空字串,否則返回查詢到的user資訊。

***接收到服務端的返回資訊,若為空字串則返回原始登入頁面,並攜帶原始url,否則通過傳來的使用者資訊,對user物件進行還原,方便下個人獲取,攔截操作結束,成功進入了業務系統的index頁面,並將request物件攜帶的user資訊顯示出來。

3)業務系統增加自己的***

4)單點退出

服務端從request物件的cookie中獲取token的值,將這個token從全域性資料結構中移除,並且將使用者儲存有該token的cookie設定為無效的。

實現同域單點登入

利用瀏覽器cookies儲存當前登入使用者資訊,使得同域 能夠共享使用該cookies儲存的使用者資訊,取得當前登入使用者,實現單點登入。域 hello.com 儲存鍵名稱 sso.hello.com 儲存的值 userid sjdjajhsh 示例 cookie sso.hello.com use...

同域單點登入原理

簡介 單點登入 single sign on 簡稱sso,是目前比較流行的企業業務整合的解決方案之一,sso的定義是在多個應用系統中,使用者只需要登入一次就可以訪問所有相互信任的應用程式。原理圖 當使用者進入乙個應用程式登入介面時,登入成功後,會把使用者的資訊寫進cookie,之後穿梭到其他互相信任...

SSO系列之 同域下單點登入系統介紹

single sign on即單點登入,從乙個頁面登入,就可以訪問其他互信系統,避免使用者重新登入 在整個業務服務群中起到了輔助 整合的作用 客戶端呼叫模組 認證中心 認證中心 是sso系統的核心,它 先驗證使用者是否有許可權訪問系統,如果有 讓使用者訪問系統資源 如果沒有,提供乙個登入頁面。使用者...