CAS 中平面文件身份验证的自定义属性

Custom attributes for flat file authentication in CAS

我在整个堆栈中绝对是新手,所以如果这是一个非常愚蠢的问题,我提前道歉。

我正在努力设置一个本地(模拟)CAS 服务,这样我们就可以针对一个至少与我们在 staging/production 环境中拥有的系统类似的身份验证系统测试我们的应用程序。

我使用 https://github.com/ubc/vagrant-cas 作为起点。我已经设法通过修改 cas.propertiesdeployerConfigContext.xml 来设置它,使我能够在用户登录时实际传递自定义属性。即

<bean id="attributeRepository" class="org.jasig.services.persondir.support.StubPersonAttributeDao">
    <property name="backingMap">
        <map>
            <entry key="uid" value="uid" />
            <entry key="eduPersonAffiliation" value="eduPersonAffiliation" />
            <entry key="groupMembership" value="groupMembership" />
            <entry key="puid" value="12345678910" />
        </map>
    </property>
</bean>

这与默认 org.jasig.cas.authentication.handler.support.SimpleTestUsernamePasswordAuthenticationHandler" 相结合意味着每当我使用相同的用户名和密码登录(即用户名 'admin' 密码 'admin' )然后该用户登录并且属性 puid 返回值为“12345678910”(每个 username/password 组合返回相同的 PUID)。

(我必须在 'Services Management' 应用程序中启用属性发回)

实际上需要的是能够拥有多个用户,所有用户都具有不同的 puid 值。即

用户名:密码:1234

用户名2:密码2:5678

等等

我注意到有一个 org.jasig.cas.adaptors.generic.FileAuthenticationHandler 但它只允许 username::password 而没有自定义属性。 (那么近又那么远)。

我有点不知所措,我不是 java 程序员并且已经达到了我的 google-fu 的极限。任何帮助我指明正确方向的帮助将不胜感激。

基于文件的身份验证不支持自定义属性。您可能对此感兴趣:https://github.com/Unicon/cas-addons/wiki/Configuring-JSON-ComplexStubPersonAttributeDao