我们已根据官方文档(aup和delegate authentication)配置了标题中所述的两个功能。
我们使用delagate身份验证与外部saml idp提供程序集成。因此,我们有两种认证方式。 idp身份验证和本地身份验证(cas内部数据库身份验证器)。
在进行内部和内部认证之后,我们需要在满足条件A时显示接受使用策略视图。
以上内容适用于本地登录,但是,当在外部idp中执行身份验证时,即使条件A为,也不会显示可接受的使用政策页面 。遇到,用户最终登录了最初请求的服务。
问题:为什么会发生这种情况,并且有任何可能的解决方法?
Cas服务器版本:5.3.7
答案 0 :(得分:1)
如果您检查this block,您会发现对策略使用情况的验证已链接到class Dog
attr_reader :name
def initialize(name)
@name = name
end
end
class Game
attr_reader :dogs
def initialize
load_dogs
end
def play
puts "For tonights race we have:"
dogs.each do |dog|
puts dog.name
end
puts
choose_your_dog
end
private
def choose_your_dog
puts "Which dog do you want"
@choice = gets.to_s.strip
puts "You choose #{@choice}; great choice!"
end
def load_dogs
@dogs = []
@dogs << Dog.new('Joe')
@dogs << Dog.new('Sally')
@dogs << Dog.new('Steve')
end
end
game = Game.new
game.play
并作为输入动作创建:
STATE_ID_CREATE_TICKET_GRANTING_TICKET
这是AUP流程的局限性,因此,特别是在委托用例中,verify操作的结果会被忽略,即使最终指示,也不会考虑触发最终视图。
6.0.x分支对此逻辑进行了一些更改以改善此行为:
final ActionState ticketCreateState = getState(flow, CasWebflowConstants.STATE_ID_CREATE_TICKET_GRANTING_TICKET, ActionState.class);
ticketCreateState.getEntryActionList().add(createEvaluateAction("acceptableUsagePolicyVerifyAction"));
createTransitionForState(ticketCreateState, AcceptableUsagePolicyVerifyAction.EVENT_ID_MUST_ACCEPT, VIEW_ID_ACCEPTABLE_USAGE_POLICY_VIEW);
欢迎您在5.3.x部署中尝试相同的方法并进行报告。确保彻底测试这两种情况。如果一切正常,请回发,然后您可以向项目发布拉取请求以更改/修复此行为。
PS请注意,各种Webflow动作和状态的纠缠非常棘手,因为有许多模块希望将自己插入正确的Webflow状态以适应某些行为。这样的模块通常彼此之间一无所知,并试图在某种程度上不可知地增加流量。在这种情况下,将这些东西链接在一起可能会非常棘手。