1. 程式人生 > >cas4.2.7學習(七)cas server端登陸後根據url自定義跳轉

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

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

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

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

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

修改前:

 <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