I cannot for the life of me figure out what I need to get my dev CAS instance to talk to LDAP. When it's running and I try to auth to the webpage I see this in the logs:
cas_1 | 2017-08-16 19:14:36,150 DEBUG [org.apereo.cas.authentication.RegisteredServiceAuthenticationHandlerResolver] - <Authentication handlers used for this transaction are [HttpBasedServiceCredentialsAuthenticationHandler]>
cas_1 | 2017-08-16 19:14:36,152 WARN [org.apereo.cas.authentication.PolicyBasedAuthenticationManager] - <Authentication has failed. Credentials may be incorrect or CAS cannot find authentication handler that supports [crp] of type [UsernamePasswordCredential], which suggests a configuration problem.>
I have this in my pom.xml:
<dependencies>
<dependency>
<groupId>org.apereo.cas</groupId>
<artifactId>cas-server-webapp${app.server}</artifactId>
<version>${cas.version}</version>
<type>war</type>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.apereo.cas</groupId>
<artifactId>cas-server-support-ldap</artifactId>
<version>${cas.version}</version>
</dependency>
</dependencies>
And, I've this in my cas.properties file:
/etc/cas/config # cat cas.properties
cas.adminPagesSecurity.ip=127\.0\.0\.1
logging.level.org.apereo=DEBUG
logging.config: file:/etc/cas/config/log4j2.xml
cas.serviceRegistry.config.location: classpath:/services
# Override cas-overlay-template auth for testing
cas.authn.accept.users=
and myh ldap.properties
# LDAP Config
cas.authn.policy.req.handlername=LdapAuthenticationHandler
cas.authn.policy.req.enabled=true
cas.authn.ldap[0].type=ANONYMOUS
cas.authn.ldap[0].ldapUrl=ldaps://ldap.somewhere
cas.authn.ldap[0].useSsl=true
cas.authn.ldap[0].baseDn=ou=people,dc=some,dc=where
cas.authn.ldap[0].userFilter=uid={user}
cas.authn.ldap[0].subtreeSearch=true
cas.authn.ldap[0].dnFormat=uid=%s,ou=people,dc=some,dc=where
cas.authn.ldap[0].principalAttributeId=uid
cas.authn.ldap[0].allowMultiplePrincipalAttributeValues=true
It's gotta be some simple little thing I'm missing.
Thanks,
Chris
PS - it's all running in a docker container