diff --git a/ldap/src/main/java/org/springframework/security/ldap/authentication/AbstractLdapAuthenticator.java b/ldap/src/main/java/org/springframework/security/ldap/authentication/AbstractLdapAuthenticator.java index 580b3674b1..e62d7c5e06 100644 --- a/ldap/src/main/java/org/springframework/security/ldap/authentication/AbstractLdapAuthenticator.java +++ b/ldap/src/main/java/org/springframework/security/ldap/authentication/AbstractLdapAuthenticator.java @@ -15,6 +15,7 @@ package org.springframework.security.ldap.authentication; +import org.springframework.ldap.core.LdapEncoder; import org.springframework.security.core.SpringSecurityMessageSource; import org.springframework.security.ldap.search.LdapUserSearch; import org.springframework.beans.factory.InitializingBean; @@ -91,7 +92,7 @@ public abstract class AbstractLdapAuthenticator implements LdapAuthenticator, In } List userDns = new ArrayList(userDnFormat.length); - String[] args = new String[] {username}; + String[] args = new String[] {LdapEncoder.nameEncode(username)}; synchronized (userDnFormat) { for (int i = 0; i < userDnFormat.length; i++) { diff --git a/ldap/src/test/java/org/springframework/security/ldap/authentication/BindAuthenticatorTests.java b/ldap/src/test/java/org/springframework/security/ldap/authentication/BindAuthenticatorTests.java index 58956fe312..740314cdca 100644 --- a/ldap/src/test/java/org/springframework/security/ldap/authentication/BindAuthenticatorTests.java +++ b/ldap/src/test/java/org/springframework/security/ldap/authentication/BindAuthenticatorTests.java @@ -54,10 +54,11 @@ public class BindAuthenticatorTests extends AbstractLdapIntegrationTests { @Test public void testAuthenticationWithCorrectPasswordSucceeds() { - authenticator.setUserDnPatterns(new String[] {"uid={0},ou=people"}); + authenticator.setUserDnPatterns(new String[] {"uid={0},ou=people", "cn={0},ou=people"}); DirContextOperations user = authenticator.authenticate(bob); assertEquals("bob", user.getStringAttribute("uid")); + authenticator.authenticate(new UsernamePasswordAuthenticationToken("mouse, jerry", "jerryspassword")); } @Test