2013-07-18 88 views
0

我有一個CAS 3.4.9使用登錄Webflow。
我需要直接調用特定操作/視圖的登錄Webflow。
怎麼辦?呼叫CAS登錄webflow

如果這是不可能的(我相信一個安全原因),如何可以在CAS上使用另一個webflow的另一個「服務」?
以這種方式,我必須使用什麼鏈接來調用它?
謝謝。

回答

0

你有兩種選擇。擴展您想要調用的類,例如在generateServiceTicket中,或者創建一個新類並將您的類注入到CAS登錄Webflow中。

我在CAS登錄Webflow中注入了一個陷阱,以檢查用戶是否在過去365天內接受了策略。

通常在warn決策狀態下,它將返回重定向操作狀態,但是我會捕獲用戶以便檢查策略。

<decision-state id="warn"> 
      <if test="flowScope.warnCookieValue" then="showWarningView" else="checkPolicy" /> 
    </decision-state> 

然後,它過渡到我的checkPolicy狀態

<action-state id="checkPolicy"> 
     <evaluate expression="checkPolicyAction"/> 
      <transition on="success" to="redirect"/> 
      <transition on="error" to="viewLoginForm"/> 
      <transition on="redirectPolicy" to="redirectPolicy"/> 
      <transition on="gateway" to="redirectPolicy"/> 
    </action-state> 

表達checkPolicyAction在CAS-servlet.xml中來執行該方法doExecute並返回到一個Webflow各種狀態的Java類定義就像你在前面的xml中看到的那樣。只需要將它關閉,redirectPolicy將用戶重定向到一個新服務,然後讓他們接受該策略,然後他們可以繼續執行他們打算執行的操作。

看看https://github.com/Unicon/cas-password-manager - 這是一家公司已經擴展CAS的登錄Web流程以捕獲密碼更新。這是我獲得關於如何捕捉用戶的大部分想法的地方。 CAS用戶手冊https://wiki.jasig.org/display/CASUM/也是一個很好的資源。