cas4.2.7學習(七)cas server端登陸後根據url自定義跳轉

首先說明一下,正常的單點登陸應該都是訪問客戶端,然後跳轉到cas服務器驗證登陸之後,返回到客戶端原來的地址,

這個是通過參數service來實現的,我們返回沒有客戶端跳轉到cas server登陸頁的時候地址欄裏都會跟有這個參數。這個參數就是控制重定向的。

但是如果我們直接訪問server端登陸,它的這個參數是空的,所以cas給了一個默認的頁面 casGenericSuccessView.jsp 所以登陸之後就跳轉到這裏了。

但是實際需求是通過cas server 登陸之後直接跳轉到摸一個客戶端,解決辦法:

將要跳轉的客戶端url當作參數傳到後臺(參考https://mp.csdn.net/postedit/83744386),然後修改登陸成功之後的流程,讓它做跳轉即可:

修改前:

 <end-state id="viewGenericLoginSuccess" view="casGenericSuccessView">
        <on-entry>
            <evaluate expression="genericSuccessViewAction.getAuthenticationPrincipal(flowScope.ticketGrantingTicketId)"
                      result="requestScope.principal"
                      result-type="org.jasig.cas.authentication.principal.Principal"/>
        </on-entry>
    </end-state>

修改後:

 <end-state id="viewGenericLoginSuccess" view="externalRedirect:#{flowScope.credential.sys_url}" />

flowScope.credential.sys_url就是我們要跳轉的客戶端url

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章