cas單點登出後,缺省會跳到它自帶的登出介面(這裡建立在已部署好cas—server的基礎上,詳情見上篇文章),如下圖:
對應的jsp如下目錄:
修改cas-servlet.xml檔案的bean的id為logoutcontroller下的p:followserviceredirects屬性為「true」,如下圖:
在自己系統要配置的系統「退出」鏈結後加上「?service=退出返回後的位址」,例如:cas測試用的兩個客戶端的配置。例如:
?service=
">退出
如下圖:
下面從配置檔案,到原始碼進行分析:
由上圖可知,所有/logout的請求都交給safedispatcherservlet去分發了,檢視**可以知道這個servlet只是對org.springframework.web.servlet.dispatcherservlet一次包裝,將所有請求都交給org.springframework.web.servlet.dispatcherservlet去處理了。
那麼我們看看org.jasig.cas.web.logoutcontroller到底做了什麼事情,我們第一步中修改的配置正是這個controller的配置:
下面看它的核心原始碼你就明白了:
// 如果引數:followserviceredirects為true 同時service不會空的時候,跳轉到service指定的url
if (this.followserviceredirects && service != null)
//否則,跳轉到logoutview指定的頁面
return new modelandview(this.logoutview);
}
相信,看到下面這句話,你就明白為什麼配置第一步和第二步了/logout: ( 對應實現類 org.jasig.cas.web.logoutcontroller ),登出的處理邏輯如下:
(1) removecookie
(2) 在服務端刪除ticketgrantingticket 物件(此物件封裝了cookie 的value 值)
(3) redirect 到退出頁面,有2 種選擇:
l 如果logoutcontroller 的followserviceredirects 屬性為true 值,且url 裡的service 引數非空,則redirect 到 sevice 引數標識的url;
l 否則, redirect 到內建的caslogoutview ,如果url 裡有url 引數,則此url 引數標識的鏈結會顯示在caslogoutview 頁面上。
耐心的看看這些開源框架的原始碼,你很容易就明白了為什麼這麼做;當然如果熟讀原始碼的話,你就可以按著自己的想法隨意的修改框架的各個部分。
CAS 登出登入後跳轉到登入頁
cas單點登出後,缺省會跳到它自帶的登出介面,但是很多時候我們是希望它跳轉到登入介面,需要做如下修改 cas servlet.xml檔案中 p centralauthenticationservice ref centralauthenticationservice p logoutview cas...
使用者登入後跳轉到 登入前 的頁面 url 跳轉
在一般有使用者登入的 中,都會有需要使用者登入後才能操作的頁面,如果在使用者登入後能跳轉到之前的頁面,就會給使用者乙個很好的體驗,也能讓他們更容易的瀏覽要操作的頁面。這中間主要用到的是獲取url引數,獲取後用於跳轉。主要實現步驟 為了能很好的說明,主要已兩個頁面為例,order.aspx,login...
CAS單點登入 單點登出 退出 登出(十二)
據說cas3.x開始支援單點登出,但我們目前講的是5.1.x,當然我們加入了單點登入,一般來說都需要單點登出的,讓個子系統支援單點登出需要做一些工作 logouttyle型別講解 cas退出流程分析 cas client單點退出配置 buji shiro pac4j 單點退出配置 重點目標 a系統需...