Hi, I am running CAS 3.4.6 with OpenDS and user authentication is working as expected.
However, I am not able to get LDAP attributes, could you please help me to find what I am doing wrong. Here is my configuration: <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xmlns:sec="http://www.springframework.org/schema/security" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security-3.0.xsd"> <bean id="authenticationManager" class="org.jasig.cas.authentication.AuthenticationManagerImpl"> <property name="credentialsToPrincipalResolvers"> <list> <bean class="org.jasig.cas.authentication.principal.CredentialsToLDAPAttributePrincipalResolver"> <property name="credentialsToPrincipalResolver"> <bean class="org.jasig.cas.authentication.principal.UsernamePasswordCredentialsToPrincipalResolver" /> </property> <property name="filter" value="(uid=%u)" /> <property name="principalAttributeName" value="uid" /> <property name="searchBase" value="ou=people,dc=tinesys,dc=fr" /> <property name="contextSource" ref="contextSource" /> <property name="attributeRepository"> <ref bean="attributeRepository" /> </property> </bean> <bean class="org.jasig.cas.authentication.principal.HttpBasedServiceCredentialsToPrincipalResolver" /> </list> </property> <property name="authenticationHandlers"> <list> <bean class="org.jasig.cas.authentication.handler.support.HttpBasedServiceCredentialsAuthenticationHandler" p:httpClient-ref="httpClient" /> <!-- <bean class="org.jasig.cas.authentication.handler.support.SimpleTestUsernamePasswordAuthenticationHandler" /> +--> <bean class="org.jasig.cas.adaptors.ldap.BindLdapAuthenticationHandler"> <property name="filter" value="uid=%u" /> <property name="searchBase" value="ou=people,dc=tinesys,dc=fr" /> <property name="contextSource" ref="contextSource" /> </bean> </list> </property> </bean> <bean id="contextSource" class="org.springframework.ldap.core.support.LdapContextSource"> <property name="pooled" value="false"/> <property name="urls"> <list> <value>ldaps://myhost:1636/</value> </list> </property> <property name="userDn" value="cn=Directory Manager"/> <!-- eg uid=LdapUser,dc=yourdomain,dc=edu --> <property name="password" value="my secret password"/> <property name="baseEnvironmentProperties"> <map> <entry> <key> <value>java.naming.security.authentication</value> </key> <value>simple</value> </entry> <entry> <key> <value>com.sun.jndi.ldap.connect.timeout</value> </key> <value>2000</value> </entry> <entry> <key> <value>com.sun.jndi.ldap.read.timeout</value> </key> <value>2000</value> </entry> </map> </property> </bean> <!-- <sec:user name="@@THIS SHOULD BE REPLACED@@" password="notused" authorities="ROLE_ADMIN" />--> <sec:user-service id="userDetailsService"> <sec:user name="battags" password="notused" authorities="ROLE_ADMIN" /> </sec:user-service> <bean id="attributeRepository" class="org.jasig.services.persondir.support.ldap.LdapPersonAttributeDao"> <property name="contextSource" ref="contextSource" /> <property name="baseDN" value="ou=people,dc=tinesys,dc=fr" /> <property name="requireAllQueryAttributes" value="true" /> <!-- Attribute mapping beetween principal (key) and LDAP (value) names used to perform the LDAP search. By default, multiple search criteria are ANDed together. Set the queryType property to change to OR. --> <property name="queryAttributeMapping"> <map> <entry key="username" value="uid" /> </map> </property> <property name="resultAttributeMapping"> <map> <!-- Mapping beetween LDAP entry attributes (key) and Principal's (value) --> <entry key="cn" value="Name"/> <entry key="uid" value="username"/> <entry value="isMemberOf" key="isMemberOf" /> </map> </property> </bean> <bean id="serviceRegistryDao" class="org.jasig.cas.services.InMemoryServiceRegistryDaoImpl"> <property name="registeredServices"> <list> <bean class="org.jasig.cas.services.RegisteredServiceImpl"> <property name="id" value="0" /> <property name="name" value="HTTP" /> <property name="description" value="Only Allows HTTP Urls" /> <property name="serviceId" value="http://**" /> <property name="allowedAttributes" value="uid,cn,isMemberOf" /> </bean> <bean class="org.jasig.cas.services.RegisteredServiceImpl"> <property name="id" value="1" /> <property name="name" value="HTTPS" /> <property name="description" value="Only Allows HTTPS Urls" /> <property name="serviceId" value="https://**" /> </bean> <bean class="org.jasig.cas.services.RegisteredServiceImpl"> <property name="id" value="2" /> <property name="name" value="IMAPS" /> <property name="description" value="Only Allows HTTPS Urls" /> <property name="serviceId" value="imaps://**" /> </bean> <bean class="org.jasig.cas.services.RegisteredServiceImpl"> <property name="id" value="3" /> <property name="name" value="IMAP" /> <property name="description" value="Only Allows IMAP Urls" /> <property name="serviceId" value="imap://**" /> </bean> </list> </property> </bean> <bean id="auditTrailManager" class="com.github.inspektr.audit.support.Slf4jLoggingAuditTrailManager" /> </beans> Here are some logs: 2011-03-17 12:54:04,949 INFO [org.jasig.cas.authentication.AuthenticationManagerImpl] - AuthenticationHandler: org.jasig.cas.adaptors.ldap.BindLdapAuthenticationHandler successfully authenticated the user which provided the following credentials: [username: someone] 2011-03-17 12:54:04,949 DEBUG [org.jasig.cas.authentication.principal.CredentialsToLDAPAttributePrincipalResolver] - Attempting to resolve a principal... 2011-03-17 12:54:04,949 DEBUG [org.jasig.cas.authentication.principal.CredentialsToLDAPAttributePrincipalResolver] - Attempting to resolve a principal... 2011-03-17 12:54:04,949 DEBUG [org.jasig.cas.authentication.principal.UsernamePasswordCredentialsToPrincipalResolver] - Attempting to resolve a principal... 2011-03-17 12:54:04,949 DEBUG [org.jasig.cas.authentication.principal.UsernamePasswordCredentialsToPrincipalResolver] - Attempting to resolve a principal... 2011-03-17 12:54:04,949 DEBUG [org.jasig.cas.authentication.principal.UsernamePasswordCredentialsToPrincipalResolver] - Creating SimplePrincipal for [someone] 2011-03-17 12:54:04,949 DEBUG [org.jasig.cas.authentication.principal.UsernamePasswordCredentialsToPrincipalResolver] - Creating SimplePrincipal for [someone] 2011-03-17 12:54:04,951 DEBUG [org.jasig.cas.authentication.principal.CredentialsToLDAPAttributePrincipalResolver] - Resolved someone. Trying LDAP resolve now... 2011-03-17 12:54:04,951 DEBUG [org.jasig.cas.authentication.principal.CredentialsToLDAPAttributePrincipalResolver] - Resolved someone. Trying LDAP resolve now... 2011-03-17 12:54:04,951 DEBUG [org.jasig.cas.authentication.principal.CredentialsToLDAPAttributePrincipalResolver] - LDAP search with filter "(uid=someone)" 2011-03-17 12:54:04,951 DEBUG [org.jasig.cas.authentication.principal.CredentialsToLDAPAttributePrincipalResolver] - LDAP search with filter "(uid=someone)" 2011-03-17 12:54:04,951 DEBUG [org.jasig.cas.authentication.principal.CredentialsToLDAPAttributePrincipalResolver] - returning searchcontrols: scope=2; search base=ou=people,dc=xxxxx,dc=xxxx; attributes=[uid]; timeout=1000 2011-03-17 12:54:04,951 DEBUG [org.jasig.cas.authentication.principal.CredentialsToLDAPAttributePrincipalResolver] - returning searchcontrols: scope=2; search base=ou=people,dc=xxxxx,dc=xxxx; attributes=[uid]; timeout=1000 2011-03-17 12:54:04,997 DEBUG [org.jasig.cas.authentication.principal.CredentialsToLDAPAttributePrincipalResolver] - Resolved someone to someone 2011-03-17 12:54:04,997 DEBUG [org.jasig.cas.authentication.principal.CredentialsToLDAPAttributePrincipalResolver] - Resolved someone to someone 2011-03-17 12:54:04,997 DEBUG [org.jasig.cas.authentication.principal.CredentialsToLDAPAttributePrincipalResolver] - Creating SimplePrincipal for [someone] 2011-03-17 12:54:04,997 DEBUG [org.jasig.cas.authentication.principal.CredentialsToLDAPAttributePrincipalResolver] - Creating SimplePrincipal for [someone] 2011-03-17 12:54:04,998 DEBUG [org.jasig.services.persondir.support.ldap.LdapPersonAttributeDao] - Created seed map='{username=[someone]}' for uid='someone' 2011-03-17 12:54:04,998 DEBUG [org.jasig.services.persondir.support.ldap.LdapPersonAttributeDao] - Created seed map='{username=[someone]}' for uid='someone' 2011-03-17 12:54:04,998 DEBUG [org.jasig.services.persondir.support.ldap.LdapPersonAttributeDao] - Adding attribute 'uid' with value '[someone]' to query builder 'null' 2011-03-17 12:54:04,998 DEBUG [org.jasig.services.persondir.support.ldap.LdapPersonAttributeDao] - Adding attribute 'uid' with value '[someone]' to query builder 'null' 2011-03-17 12:54:05,001 DEBUG [org.jasig.services.persondir.support.ldap.LdapPersonAttributeDao] - Generated query builder '(uid=cguillerminet)' from query Map {username=[cguillerminet]}. 2011-03-17 12:54:05,001 DEBUG [org.jasig.services.persondir.support.ldap.LdapPersonAttributeDao] - Generated query builder '(uid=cguillerminet)' from query Map {username=[cguillerminet]}. 2011-03-17 12:54:05,064 INFO [com.github.inspektr.audit.support.Slf4jLoggingAuditTrailManager] - Audit trail record BEGIN ============================================================= WHO: [username: someone] WHAT: supplied credentials: [username: someone] ACTION: AUTHENTICATION_SUCCESS APPLICATION: CAS WHEN: Thu Mar 17 12:54:05 EDT 2011 CLIENT IP ADDRESS: xxx.xx.xx.xx SERVER IP ADDRESS: xxx.xx.xx.xx ============================================================= 2011-03-17 12:54:05,070 INFO [com.github.inspektr.audit.support.Slf4jLoggingAuditTrailManager] - Audit trail record BEGIN ============================================================= WHO: [username: someone] WHAT: TGT-1-gxBJlnF2jeUWpnwel20dUcq0DBOMJ51cRlxKGBRgRctlM4k5gE-cas ACTION: TICKET_GRANTING_TICKET_CREATED APPLICATION: CAS WHEN: Thu Mar 17 12:54:05 EDT 2011 CLIENT IP ADDRESS: xxx.xx.xx.xx SERVER IP ADDRESS: xxx.xx.xx.xx ============================================================= 2011-03-17 12:54:05,071 INFO [com.github.inspektr.audit.support.Slf4jLoggingAuditTrailManager] - Audit trail record BEGIN ============================================================= WHO: audit:unknown WHAT: TGT-1-WdrIcWoeCRAOXdievaMQze0ItGXgdUY9te0DobCFhcV2dfN7Bs-cas ACTION: TICKET_GRANTING_TICKET_DESTROYED APPLICATION: CAS WHEN: Thu Mar 17 12:54:05 EDT 2011 CLIENT IP ADDRESS: xxx.xx.xx.xx SERVER IP ADDRESS: xxx.xx.xx.xx ============================================================= 2011-03-17 12:54:05,073 INFO [org.jasig.cas.CentralAuthenticationServiceImpl] - Granted service ticket [ST-1-7sFZLYHxwnNne1wzshAj-cas] for service [http://172.22.95.75/] for user [cguillerminet] 2011-03-17 12:54:05,074 INFO [com.github.inspektr.audit.support.Slf4jLoggingAuditTrailManager] - Audit trail record BEGIN ============================================================= WHO: someone WHAT: ST-1-7sFZLYHxwnNne1wzshAj-cas for http://xxx.xx.xx.xx/ ACTION: SERVICE_TICKET_CREATED APPLICATION: CAS WHEN: Thu Mar 17 12:54:05 EDT 2011 CLIENT IP ADDRESS: xxx.xx.xx.xx SERVER IP ADDRESS: xxx.xx.xx.xx ============================================================= 2011-03-17 12:54:05,125 DEBUG [org.jasig.cas.authentication.principal.SamlService] - Attempted to extract Request from HttpServletRequest. Results: 2011-03-17 12:54:05,125 DEBUG [org.jasig.cas.authentication.principal.SamlService] - Attempted to extract Request from HttpServletRequest. Results: 2011-03-17 12:54:05,125 DEBUG [org.jasig.cas.authentication.principal.SamlService] - Request Body: <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"><SOAP-ENV:Header/><SOAP-ENV:Body><samlp:Request xmlns:samlp="urn:oasis:names:tc:SAML:1.0:protocol" MajorVersion="1" MinorVersion="1" RequestID="_192.168.16.51.1024506224022" IssueInstant="2002-06-19T17:03:44.022Z"><samlp:AssertionArtifact>ST-1-7sFZLYHxwnNne1wzshAj-cas</samlp:AssertionArtifact></samlp:Request></SOAP-ENV:Body></SOAP-ENV:Envelope> 2011-03-17 12:54:05,125 DEBUG [org.jasig.cas.authentication.principal.SamlService] - Request Body: <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"><SOAP-ENV:Header/><SOAP-ENV:Body><samlp:Request xmlns:samlp="urn:oasis:names:tc:SAML:1.0:protocol" MajorVersion="1" MinorVersion="1" RequestID="_192.168.16.51.1024506224022" IssueInstant="2002-06-19T17:03:44.022Z"><samlp:AssertionArtifact>ST-1-7sFZLYHxwnNne1wzshAj-cas</samlp:AssertionArtifact></samlp:Request></SOAP-ENV:Body></SOAP-ENV:Envelope> 2011-03-17 12:54:05,125 DEBUG [org.jasig.cas.authentication.principal.SamlService] - Extracted ArtifactId: ST-1-7sFZLYHxwnNne1wzshAj-cas 2011-03-17 12:54:05,125 DEBUG [org.jasig.cas.authentication.principal.SamlService] - Extracted ArtifactId: ST-1-7sFZLYHxwnNne1wzshAj-cas 2011-03-17 12:54:05,125 DEBUG [org.jasig.cas.authentication.principal.SamlService] - Extracted Request Id: _192.168.16.51.1024506224022 2011-03-17 12:54:05,125 DEBUG [org.jasig.cas.authentication.principal.SamlService] - Extracted Request Id: _192.168.16.51.1024506224022 2011-03-17 12:54:05,129 INFO [com.github.inspektr.audit.support.Slf4jLoggingAuditTrailManager] - Audit trail record BEGIN ============================================================= WHO: audit:unknown WHAT: ST-1-7sFZLYHxwnNne1wzshAj-cas ACTION: SERVICE_TICKET_VALIDATED APPLICATION: CAS WHEN: Thu Mar 17 12:54:05 EDT 2011 CLIENT IP ADDRESS: xxx.xx.xx.xx SERVER IP ADDRESS: xx.xx.xx.xx ============================================================= Regards. -- You are currently subscribed to [email protected] as: [email protected] To unsubscribe, change settings or access archives, see http://www.ja-sig.org/wiki/display/JSG/cas-user
