gpt4 book ai didi

java - 在 CAS 中,如果尚未接受协议(protocol),我如何限制对一项服务的访问?

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:00:44 24 4
gpt4 key购买 nike

要求用户首先接受一些许可协议(protocol),该协议(protocol)仅存在于服务A中,以便能够登录所有其他服务。

所以流程应该是:

  • 用户通过 CAS 登录。
  • 因为他没有接受协议(protocol)所以只能登录serviceA
  • 当他接受服务A的协议(protocol)后,他也可以登录其他服务。

注意事项:
serviceA以外的服务代码不可修改。
CAS 还可以访问 agreement_accepted 标志。

使用的 CAS 版本:5.3.4

最佳答案

假设 agreement_accepted 是认证用户的属性,您可以设计两种访问策略,S1 和 S2,适用于服务 A 和所有其他应用程序。

  • 对于 S1,该策略是 CAS 中的默认策略,其中可以毫无问题地授予对服务 A 的访问权限。
  • 对于 S2,如果作为属性的 agreement_accepted 的值为,比方说,true

此处详细介绍了服务/应用程序的访问策略: https://apereo.github.io/cas/5.3.x/installation/Configuring-Service-Access-Strategy.html

看这个例子: https://apereo.github.io/cas/5.3.x/installation/Configuring-Service-Access-Strategy.html#enforce-attributes

您需要确保将 S2 分配给所有其他应用程序,但服务 A 的记录除外。

PS 您还可以考虑将 CAS 版本升级到 5.3.8,这是撰写本文时最新的 5.3.x。

关于java - 在 CAS 中,如果尚未接受协议(protocol),我如何限制对一项服务的访问?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54220454/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com