Browse Source

Added code to set the manager username and password if supplied.

2.0.x
Luke Taylor 19 years ago
parent
commit
0b54eece28
  1. 14
      core/src/main/java/org/springframework/security/config/LdapBeanDefinitionParser.java

14
core/src/main/java/org/springframework/security/config/LdapBeanDefinitionParser.java

@ -6,6 +6,7 @@ import org.springframework.beans.factory.support.AbstractBeanDefinition; @@ -6,6 +6,7 @@ import org.springframework.beans.factory.support.AbstractBeanDefinition;
import org.springframework.beans.factory.support.RootBeanDefinition;
import org.springframework.beans.factory.BeanDefinitionStoreException;
import org.springframework.util.StringUtils;
import org.springframework.util.Assert;
import org.springframework.security.ldap.DefaultInitialDirContextFactory;
import org.springframework.security.providers.ldap.LdapAuthenticationProvider;
import org.springframework.security.providers.ldap.populator.DefaultLdapAuthoritiesPopulator;
@ -34,7 +35,6 @@ public class LdapBeanDefinitionParser extends AbstractBeanDefinitionParser { @@ -34,7 +35,6 @@ public class LdapBeanDefinitionParser extends AbstractBeanDefinitionParser {
/** Defines the Url of the ldap server to use. If not specified, an embedded apache DS instance will be created */
private static final String URL_ATTRIBUTE = "url";
private static final String AUTH_TYPE_ATTRIBUTE = "auth";
// TODO: Setting login/passwords for non embedded server.
private static final String PRINCIPAL_ATTRIBUTE = "managerDn";
private static final String PASSWORD_ATTRIBUTE = "managerPassword";
@ -68,6 +68,18 @@ public class LdapBeanDefinitionParser extends AbstractBeanDefinitionParser { @@ -68,6 +68,18 @@ public class LdapBeanDefinitionParser extends AbstractBeanDefinitionParser {
initialDirContextFactory.getConstructorArgumentValues().addIndexedArgumentValue(0, url);
}
String managerDn = elt.getAttribute(PRINCIPAL_ATTRIBUTE);
String managerPassword = elt.getAttribute(PASSWORD_ATTRIBUTE);
if (StringUtils.hasText(managerDn)) {
Assert.hasText(managerPassword, "You must specify the " + PASSWORD_ATTRIBUTE +
" if you supply a " + managerDn);
initialDirContextFactory.getPropertyValues().addPropertyValue("managerDn", managerDn);
initialDirContextFactory.getPropertyValues().addPropertyValue("managerPassword", managerPassword);
}
// TODO: Make these default values for 2.0
initialDirContextFactory.getPropertyValues().addPropertyValue("useLdapContext", Boolean.TRUE);
initialDirContextFactory.getPropertyValues().addPropertyValue("dirObjectFactory", "org.springframework.ldap.core.support.DefaultDirObjectFactory");

Loading…
Cancel
Save