CAS 登出登入後跳轉到登入頁

2021-07-03 01:36:14 字數 2283 閱讀 8961

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系統需...