1. 程式人生 > >shiro + cas 4.04 單點退出 登出

shiro + cas 4.04 單點退出 登出

假如你已經整合了shiro +cas的情況下。由於登出cas成功後,是cas登出成功頁面,無法跳轉到客戶端登陸頁面。發生這種情況如何處理:
客戶端:配置如圖
這裡寫圖片描述
注意,redirectUrl 中
${cas.server}/logout 是cas 服務端登出地址,負責清除認證中心全域性會話TGT,同時清掉cookie中TGT的id:TGC
注:TGT和TGC的關係:使用者和認證中心之間建立起了全域性會話,這個全域性會話就是TGT(Ticket Granting Ticket),TGT位於CAS伺服器端,TGT並沒有放在Session中,也就是說,CAS全域性會話的實現並沒有直接使用Session機制,而是利用了Cookie自己實現的,這個Cookie叫做TGC(Ticket Granting Cookie),它存放了TGT的id,儲存在使用者瀏覽器上。
?service=c

as.server/login?service={cas.client}/index1.html 這部分就是你退出登陸後,服務端回撥客戶端的地址,由於已經退出登陸了,這個地址只要是訪問在許可權控制元件中的資源都可以,都會自動跳轉到登陸頁面。
伺服器端:配置如圖
這裡寫圖片描述
cas-servlet.xml路徑:WEB-INF/cas-servlet.xml 中找id=”logoutAction” 將cas.logout.followServiceRedirects:false 改為true,最後重啟cas伺服器和客戶端就可以了。

由於平時很少寫部落格,寫的很差,請多見諒。
這裡推薦下我的開源專案:
hxyFrame是一個OA辦公系統,採用流行的框架springMvc+spring+mybatis+shiro+ehcache開發,還集成了許可權管理(選單許可權、資料許可權),完善的程式碼生成器,solr全文搜尋引擎,activiti工作流程引擎,cas單點登陸等功能,後期還會考慮改造成Dubbo微服務化,做到模組的相對獨立,使用更加靈活,努力做到快速開發OA辦公系統。 感興趣可以Watch、Start持續關注專案最新狀態,加入QQ群:210315502
oschina倉庫:

https://git.oschina.net/huangxianyuan/hxyFrame.git
github倉庫:https://github.com/huangxianyuan/hxyFrame.git