I'm struggling with the same problem..
<!-- See
http://jasig.github.io/cas/development/installation/LDAP-Authentication.html
-->
<bean id="ldapAuthenticationHandler" class=
"org.jasig.cas.authentication.LdapAuthenticationHandler"
p:principalIdAttribute="mail">
<constructor-arg ref="authenticator" />
<property name="principalAttributeMap">
<map>
<!--
| This map provides a simple attribute
resolution mechanism.
| Keys are LDAP attribute names, values
are CAS attribute names.
| This facility can be used instead or
in addition to PrincipalResolver
| components.
-->
<entry key="member" value="memberOf" />
<entry key="eduPersonAffiliation" value=
"affiliation" />
<entry key="mail" value="mail" />
<entry key="displayName" value="displayName"
/>
<entry key="cn" value="cn" />
<entry key="sn" value="sn" />
<entry key="entryUUID" value="entryUUID" />
</map>
</property>
</bean>
Like above I added additional entries I would like to retrieve from LDAP,
and it works, but looks like the attributes generated by SimplePrinciple
was overwritten by the below,
<bean id="attributeRepository" class=
"org.jasig.services.persondir.support.NamedStubPersonAttributeDao"
p:backingMap-ref="attrRepoBackingMap" />
<util:map id="attrRepoBackingMap">
<entry key="uid" value="uid" />
<entry key="eduPersonAffiliation" value="eduPersonAffiliation" />
<entry key="groupMembership" value="groupMembership" />
<entry key="mail" value="mail" />
<entry key="cn" value="cn" />
<entry key="sn" value="sn" />
<entry>
<key><value>memberOf</value></key>
<list>
<value>faculty</value>
<value>staff</value>
<value>org</value>
</list>
</entry>
</util:map>
So when I tried to get the attributes in the CAS client as below,
AttributePrincipal principal =
(AttributePrincipal)request.getUserPrincipal();
Map attributes = principal.getAttributes();
Iterator attributeNames = attributes.keySet().iterator();
It populates static entries defined in the backing map.
For your reference, I followed all the posts in this question thread and
did as below,
<util:map id="authenticationHandlersResolvers">
<entry key-ref="proxyAuthenticationHandler" value-ref=
"proxyPrincipalResolver" />
<entry key-ref="ldapAuthenticationHandler" value-ref=
"primaryPrincipalResolver" />
<entry key-ref="primaryAuthenticationHandler" value="#{null}" />
</util:map>
cas.principal.resolver.persondir.return.null=false // in cas.properties I
did this.
And added the below to the service JSON file
...
"attributeReleasePolicy" : {
"@class" : "org.jasig.cas.services.ReturnAllowedAttributeReleasePolicy",
"principalAttributesRepository" : {
"@class" :
"org.jasig.cas.authentication.principal.DefaultPrincipalAttributesRepository"
},
"authorizedToReleaseCredentialPassword" : false,
"authorizedToReleaseProxyGrantingTicket" : false,
"allowedAttributes" : [ "java.util.ArrayList", [ "cn", "mail", "sn" ] ]
},
...
But it still retrieves the mapped static entries...
Could you please share how you could get the attributes in the map in
<bean id="ldapAuthenticationHandler" class=
"org.jasig.cas.authentication.LdapAuthenticationHandler"
p:principalIdAttribute="mail">
<constructor-arg ref="authenticator" />
<property name="principalAttributeMap">
<map>
<!--
| This map provides a simple attribute
resolution mechanism.
| Keys are LDAP attribute names, values
are CAS attribute names.
| This facility can be used instead or
in addition to PrincipalResolver
| components.
-->
<entry key="member" value="memberOf" />
<entry key="eduPersonAffiliation" value=
"affiliation" />
<entry key="mail" value="mail" />
<entry key="displayName" value="displayName"
/>
<entry key="cn" value="cn" />
<entry key="sn" value="sn" />
<entry key="entryUUID" value="entryUUID" />
</map>
</property>
</bean>
Thanks in advance.
On Monday, February 8, 2016 at 6:34:55 PM UTC+9, Mikko Tuumanen wrote:
>
> Study
>> http://jasig.github.io/cas/4.2.x/installation/Configuring-Principal-Resolution.html#principalresolver-vs-authenticationhandler
>>
>>
>>
>>
>
> <entry key-ref="primaryAuthenticationHandler" value-ref="#{null}" />
>
> causes
>
> Caused by: org.springframework.beans.factory.BeanCreationException: Error
> creating bean with name 'authenticationHandlersResolvers': Cannot resolve
> reference to bean '#{null}' while setting bean property 'sourceMap' with
> key [<primaryAuthenticationHandler>]; nested exception is org.
> springframework.beans.factory.NoSuchBeanDefinitionException: No bean
> named 'null' is defined
>
>
>
>
--
You received this message because you are subscribed to the Google Groups "CAS
Community" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
Visit this group at https://groups.google.com/a/apereo.org/group/cas-user/.