我有一个使用登录网络流的 CAS 3.4.9。
我需要在特定的操作/视图中直接调用登录 webflow。
怎么做到呢?
如果不可能(我相信是出于安全原因),如何在 CAS 上使用另一个 webflow 提供另一个“服务”?
以这种方式,我必须使用什么链接来调用它?
谢谢你。
我有一个使用登录网络流的 CAS 3.4.9。
我需要在特定的操作/视图中直接调用登录 webflow。
怎么做到呢?
如果不可能(我相信是出于安全原因),如何在 CAS 上使用另一个 webflow 提供另一个“服务”?
以这种方式,我必须使用什么链接来调用它?
谢谢你。
你有两个选择。扩展您要在其中进行调用的类,例如在 generateServiceTicket 中,或创建一个新类并将您的类注入到 CAS 登录 Web 流中。
我在我的 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 中定义为 java 类,该类执行该doExecute
方法并返回到 webflow 的各种状态,如您在前面的 xml 中看到的。最重要的是,redirectPolicy
将用户重定向到一项新服务,然后让他们接受该政策,然后他们可以继续他们打算做的事情。
看看https://github.com/Unicon/cas-password-manager - 这是一家公司扩展 CAS 的登录网络流程以捕获密码更新的地方。这是我关于如何诱捕用户的大部分想法的地方。CAS 用户手册https://wiki.jasig.org/display/CASUM/也是一个很好的资源。