Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 委托身份验证的可接受使用策略问题_Java_Single Sign On_Cas - Fatal编程技术网

Java 委托身份验证的可接受使用策略问题

Java 委托身份验证的可接受使用策略问题,java,single-sign-on,cas,Java,Single Sign On,Cas,我们已经根据官方文档配置了标题中所述的两个功能& 我们使用delagate身份验证与外部saml idp提供者集成。所以我们有两种认证方式。idp身份验证和本地onecas内部数据库身份验证程序 在外部和内部身份验证之后,我们需要在满足条件a时显示acceptance usage policy视图 上述工作与本地登录的预期工作相同,但是,当在外部idp中执行身份验证时,即使满足条件A且用户最终登录最初请求的服务,也不会显示可接受的使用策略页面 问题:为什么会发生这种情况,是否有任何可能的解决办法

我们已经根据官方文档配置了标题中所述的两个功能&

我们使用delagate身份验证与外部saml idp提供者集成。所以我们有两种认证方式。idp身份验证和本地onecas内部数据库身份验证程序

在外部和内部身份验证之后,我们需要在满足条件a时显示acceptance usage policy视图

上述工作与本地登录的预期工作相同,但是,当在外部idp中执行身份验证时,即使满足条件A且用户最终登录最初请求的服务,也不会显示可接受的使用策略页面

问题:为什么会发生这种情况,是否有任何可能的解决办法

Cas服务器版本:5.3.7

如果检查,您会发现策略使用的验证链接到并创建为状态\u ID\u创建\u票证\u授予\u票证的输入操作:

最终ActionState ticketCreateState=getStateflow,CasWebflowConstants.STATE\u ID\u CREATE\u TICKET\u grating\u TICKET,ActionState.class; ticketCreateState.getEntryActionList.addcreateEvaluateActionacceptableUsagePolicyVerifyAction; createTransitionForStateticketCreateState,AcceptableUsagePolicyVerifyAction.EVENT\u ID\u必须\u接受,查看\u ID\u ACCEPTABLE\u USAGE\u POLICY\u视图; 这是AUP流的一个限制,使得verify操作的结果被忽略,并且在委托用例中,触发最终视图时不考虑它,即使它表明了这一点

6.0.x分支稍微更改了此逻辑以改进此行为:

val ticketCreateState=getStateflow,CasWebflowConstants.STATE\u ID\u CREATE\u TICKET\u GRANTING\u TICKET,ActionState.class; createEvaluateActionForExistingActionStateflow、ticketCreateState.getId、AUP\u VERIFY\u操作; createTransitionForStateticketCreateState,CasWebflowConstants.TRANSITION\u ID\u AUP\u必须\u接受,查看\u ID\u可接受\u使用\u策略\u视图; 欢迎您在5.3.x部署中使用相同的方法进行试验并报告。务必彻底测试这两种情况。如果事情按预期进行,请发回,然后您可以向项目发布请求以更改/修复此行为


PS注意,各种webflow操作和状态的纠缠是非常棘手的,因为有许多模块希望将自己插入正确的webflow状态以适应某些行为。这些模块通常互不了解,并试图在某种程度上不可知地增加流。在这种情况下,将这些东西链接在一起可能会非常棘手。

再次感谢你,米萨格!正如您所建议的,我采用了一种类似于6.0.x的方法,它似乎很有效。当我有时间的时候,我会在这里发布我的修复作为一个答案,你可以查看它,然后我可以创建一个拉请求。祝你今天愉快。太好了。真为你高兴!