Shiro實現單點登錄的流程如下:
用戶訪問系統A,系統A檢查是否存在用戶的Cookie或Session,如果不存在,則跳轉到統一認證中心(CAS)進行登錄。
統一認證中心(CAS)接收到系統A的登錄請求后,請求用戶輸入用戶名和密碼進行認證。
統一認證中心(CAS)認證成功后,生成一個票據(Ticket)并將其存儲在CAS服務器中。
統一認證中心(CAS)將該票據返回給系統A。
系統A將該票據發送給用戶的瀏覽器,保存在Cookie中。
用戶訪問系統B,系統B檢查是否存在用戶的Cookie或Session,如果不存在,則跳轉到統一認證中心(CAS)進行驗證。
統一認證中心(CAS)接收到系統B的驗證請求后,檢查該票據是否有效。
統一認證中心(CAS)驗證通過后,返回給系統B用戶的身份信息,并生成一個系統B的票據。
系統B將該票據發送給用戶的瀏覽器,保存在Cookie中。
用戶訪問其他系統C、系統D等,重復步驟6-9,實現單點登錄。
通過以上流程,用戶只需要登錄一次,就可以在不同的系統間進行訪問,并且不需要每次都輸入用戶名和密碼。統一認證中心(CAS)負責認證和授權,各個系統只需要與統一認證中心進行通信即可。