KK~ 2023-05-24 15:51 采纳率: 0%
浏览 6

apereo/cas-overlay-template如何同时集成两种登录方式或者自定义登录

apereo/cas-overlay-template如何同时集成两种登录方式或者自定义登录?

开源项目cas是一款耶鲁大学开源单点登录的项目,地址:https://github.com/apereo/cas-overlay-template/tree/5.3

目前在使用的过程中遇到了问题。

官方文档中 :https://apereo.github.io/cas/6.6.x/authentication/Rest-Authentication.html

文档中介绍了很多认证方式,如 :ldap验证,jdbc验证,SPNEGO验证。

单独使用某一个认证方式是可以的,但是目前没有找到如何同时使用多个认证方式,

比如:先用SPNEGO认证,认证不通过自动进行jdbc认证。

如果不能实现同时多种认证,那是否可以实现自定义认证逻辑。

比如cas服务接收到认证请求后,会执行自定义的逻辑,通过自定义逻辑返回的值,来确认登录是否成功。

有没有熟悉cas的指点一下,谢谢

  • 写回答

1条回答 默认 最新

  • @晓码自在 2023-05-24 16:14
    关注

    该回答引用ChatGPT4与博主@晓码自在合作编写:

    cas 支持同时使用多种认证方式,以及自定义认证逻辑。可以采取以下步骤实现:

    1. 配置多个 AuthenticationHandler 。在 cas.properties 文件中,配置多个 authenticationHandler.cas 键,每个键对应一个 AuthenticationHandler 实现类。例如:
    properties
    authenticationHandler.cas.0=org.apereo.cas.authentication.handler.support.SimpleTestUsernamePasswordAuthenticationHandler
    authenticationHandler.cas.1=org.apereo.cas.authentication.principal.RestfulAuthenticationHandler
    
    

    这会同时启用 SimpleTestUsernamePasswordAuthenticationHandler 和 RestfulAuthenticationHandler 两个 AuthenticationHandler 。

    1. 配置 AuthenticationSequence ,指定 AuthenticationHandler 的执行顺序。例如:
    xml
    <bean id="authenticationSequence"     
      class="org.apereo.cas.authentication.SequenceAuthenticationSequence">       
      <constructor-arg>
        <list>
          <bean parent="configuredAuthenticationHandler0" />  
          <bean parent="configuredAuthenticationHandler1" /> 
        </list>
      </constructor-arg>
    </bean> 
    
    

    这会让 SimpleTestUsernamePasswordAuthenticationHandler 先执行,如果认证失败则执行 RestfulAuthenticationHandler 。

    1. 实现自己的 AuthenticationHandler 实现类,并注册为 bean 。在该实现类中可以编写自定义认证逻辑,并在认证成功/失败时返回相应的认证结果。

    2. 在 cas.properties 文件中配置 authenticationHandler.cas 键,指定刚才的自定义 AuthenticationHandler 类。

    3. 在 AuthenticationSequence 中指定自定义 AuthenticationHandler 的执行顺序。

    这样就可以同时使用多种默认认证方式,以及自定义认证逻辑。cas 会根据 AuthenticationSequence 指定的顺序,依次执行各个 AuthenticationHandler ,直到有一个认证成功为止。

    评论

报告相同问题?

问题事件

  • 创建了问题 5月24日

悬赏问题

  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
  • ¥15 ETLCloud 处理json多层级问题
  • ¥15 matlab中使用gurobi时报错
  • ¥15 这个主板怎么能扩出一两个sata口
  • ¥15 不是,这到底错哪儿了😭
  • ¥15 2020长安杯与连接网探
  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么