From 8e9e05cd5b55dc1806b2c66856b4670d323ac593 Mon Sep 17 00:00:00 2001 From: Misagh Moayyed Date: Sat, 9 Jul 2016 12:18:04 -0700 Subject: [PATCH] Use the person directory resolver if ldap authentication Is not defined to use and retrieve any attributes. --- .../cas/config/LdapAuthenticationConfiguration.java | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/cas-server-support-ldap/src/main/java/org/apereo/cas/config/LdapAuthenticationConfiguration.java b/cas-server-support-ldap/src/main/java/org/apereo/cas/config/LdapAuthenticationConfiguration.java index a2ee025c771c..f14861097749 100644 --- a/cas-server-support-ldap/src/main/java/org/apereo/cas/config/LdapAuthenticationConfiguration.java +++ b/cas-server-support-ldap/src/main/java/org/apereo/cas/config/LdapAuthenticationConfiguration.java @@ -4,6 +4,7 @@ import org.apache.commons.lang3.StringUtils; import org.apache.shiro.ldap.UnsupportedAuthenticationMechanismException; import org.apereo.cas.authentication.LdapAuthenticationHandler; +import org.apereo.cas.authentication.principal.PrincipalResolver; import org.apereo.cas.authentication.support.PasswordPolicyConfiguration; import org.apereo.cas.authorization.generator.LdapAuthorizationGenerator; import org.apereo.cas.configuration.CasConfigurationProperties; @@ -72,6 +73,10 @@ public class LdapAuthenticationConfiguration { @Autowired private CasConfigurationProperties casProperties; + @Autowired + @Qualifier("personDirectoryPrincipalResolver") + private PrincipalResolver personDirectoryPrincipalResolver; + @Autowired @Qualifier("authenticationHandlersResolvers") private Map authenticationHandlersResolvers; @@ -130,7 +135,12 @@ public void initLdapAuthenticationHandlers() { handler.setPasswordPolicyConfiguration(this.ldapPasswordPolicyConfiguration); } handler.setAuthenticator(authenticator); - this.authenticationHandlersResolvers.put(handler, null); + + if (l.getAdditionalAttributes().isEmpty() && l.getPrincipalAttributeList().isEmpty()) { + this.authenticationHandlersResolvers.put(handler, this.personDirectoryPrincipalResolver); + } else { + this.authenticationHandlersResolvers.put(handler, null); + } } }); }