【问题标题】:Cas - configure Principal transformationCas - 配置主体转换
【发布时间】:2020-11-13 06:40:51
【问题描述】:

我需要在获取属性之前转换主体。 我使用的是 CAS 6.1,创建 Principal 的类是:PersonDirectoryPrincipalResolver (https://github.com/apereo/cas/blob/6.1.x/core/cas-server-core-authentication-api/src/main/java/org/apereo/cas/authentication/principal/resolvers/PersonDirectoryPrincipalResolver.java)。

如何转换主体?有一个“principalNameTransformer”属性,但我不知道如何配置它。

【问题讨论】:

    标签: spring cas jasig


    【解决方案1】:

    根据 CAS 文档,

    通常处理用户名-密码凭据的身份验证处理程序可以配置为在执行身份验证序列之前转换用户 ID。 CAS 中的每个身份验证策略都提供了正确转换主体的设置。

    这意味着对于给定的身份验证处理程序/方案,您可以在属性指南中找到参考,例如:

    此功能的主体转换设置 [意思是身份验证处理程序] 位于配置密钥 cas.authn.file 下。

    ...可用的属性在这里:

    # ${configurationKey}.principalTransformation.pattern=(.+)@example.org
    # ${configurationKey}.principalTransformation.groovy.location=file:///etc/cas/config/principal.groovy
    # ${configurationKey}.principalTransformation.suffix=
    # ${configurationKey}.principalTransformation.caseConversion=NONE|UPPERCASE|LOWERCASE
    # ${configurationKey}.principalTransformation.prefix=
    

    启用并调整您想要的。

    要了解配置密钥是什么,see this

    【讨论】:

    • 感谢您的回答,但我不需要在身份验证之前而是在之后转换主体。我的用例是用户输入他的凭据:es:johndoe@domain.com 并且在 ldap 身份验证之后,我想仅使用用户名检索属性:johndoe。为了检索属性,我使用了不支持 principalTransformation 的“cas.authn.attributeRepository.jdbc”。
    • 出于这个原因,我正在尝试一种通过 principalNameTransformer 将 principalId 转换为 PersonDirectoryPrincipalResolver 的方法,但我不知道这是否正确
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-28
    • 2014-11-27
    • 1970-01-01
    • 1970-01-01
    • 2010-10-22
    相关资源
    最近更新 更多