Single sign on Apereo CAS分两步加载用户属性并存储它们以供属性释放
在我们的Apereo CAS 5.3.8受保护的应用程序中,我们需要在登录后显示一个屏幕,该屏幕显示一个下拉列表,其中包含一些值,用户必须从中选择一个选项。仅当满足某些条件时才需要显示屏幕,具体取决于某些用户属性。在某些情况下,我们需要的所有属性都在登录后加载,但在其他情况下,我们需要根据用户的选择加载其他属性。然后,必须将用户选择转换为我们希望存储在CAS断言中的一些其他用户属性,以便客户端应用程序可以访问用户属性并根据这些属性做出决策 为了显示这个额外的屏幕,我们创建了一个定制的多因素提供者。加载的属性被传递给Single sign on Apereo CAS分两步加载用户属性并存储它们以供属性释放,single-sign-on,cas,jasig,apereo,Single Sign On,Cas,Jasig,Apereo,在我们的Apereo CAS 5.3.8受保护的应用程序中,我们需要在登录后显示一个屏幕,该屏幕显示一个下拉列表,其中包含一些值,用户必须从中选择一个选项。仅当满足某些条件时才需要显示屏幕,具体取决于某些用户属性。在某些情况下,我们需要的所有属性都在登录后加载,但在其他情况下,我们需要根据用户的选择加载其他属性。然后,必须将用户选择转换为我们希望存储在CAS断言中的一些其他用户属性,以便客户端应用程序可以访问用户属性并根据这些属性做出决策 为了显示这个额外的屏幕,我们创建了一个定制的多因素提供者
PrincipalFactory
实现
除了用户下拉选择后发生的部分外,几乎所有操作都正常。问题是如何分两步加载主属性?我尝试更新自定义操作中的主体
和身份验证
对象,该操作在用户选择后触发,但不起作用,它总是在登录后立即加载旧主体的属性
我认为问题可能是因为属性被传递给原则性部门
,并且它们可能只被写入一次,并且变得不可变。我尝试使用AuthenticationTransactionManager
和AuthenticationResultBuilder
但无法添加额外的计算属性
非常感谢您的指导。A请参阅标签
jasig
我想您没有使用最新的CAS版本,那么您使用的CAS版本是什么?CAS 3?CAS 4?它是Apereo CAS 5.3.8Oh,那么我建议添加标签Apereo
,该项目不再由jasig
维护。如果将CAS版本添加到问题中也会很好。您知道吗?我不是cas专家,但我已经定制发布了principal,但不是分两步进行的。解决方案可能是在下拉选择后在自定义操作上生成cookie,然后在服务上读取此cookie。是的,我知道属性发布,我已经在这样做了。但是,我需要这样做两次,并将属于第二步的属性添加到先前加载的属性之上。