Spring操作LDAP
增加依赖
<dependency>
<groupId>org.springframework.ldap</groupId>
<artifactId>spring-ldap-core</artifactId>
<version>2.1.0.RELEASE</version>
</dependency>
Java代码
import org.springframework.ldap.core.AuthenticationSource;
import org.springframework.ldap.core.LdapTemplate;
import org.springframework.ldap.core.support.LdapContextSource;
import javax.naming.InvalidNameException;
import javax.naming.Name;
import javax.naming.directory.Attributes;
import javax.naming.directory.BasicAttribute;
import javax.naming.directory.BasicAttributes;
import javax.naming.ldap.LdapName;
public class LdapDemoTest {
public static void main(String[] args) throws InvalidNameException {
LdapContextSource cs = new LdapContextSource();
cs.setCacheEnvironmentProperties(false);
cs.setUrl("ldap://*.*.*.*:389");
cs.setBase("dc=example,dc=org");
cs.setAuthenticationSource(new AuthenticationSource() {
public String getCredentials() {
return "*****";
}
public String getPrincipal() {
return "cn=admin,dc=example,dc=org";
}
});
LdapTemplate template = new LdapTemplate(cs);
for(int i=0;i<5;i++) {
createUserEntry(template, "test-"+i, i);
}
}
/**
* 构造dn.
* @param secondName username
* @return dn
*/
public static LdapName getDn(String secondName) throws InvalidNameException {
LdapName dn = new LdapName("cn="+secondName);
return dn;
}
/**
* bind方法即是创建;BasicAttribute 是基本属性,有了类属性之后,才能添加具体的属性.
* @param template LdapTemplate
* @param secondName user name
*/
public static void createUserEntry(LdapTemplate template, String secondName, int i) throws InvalidNameException {
Name dn = getDn(secondName);
BasicAttribute baAttr = new BasicAttribute("objectClass");
baAttr.add("top");
baAttr.add("person");
baAttr.add("posixAccount");
Attributes attrs = new BasicAttributes();
attrs.put(baAttr);
attrs.put("cn", secondName);
attrs.put("sn", secondName);
attrs.put("uid", secondName);
attrs.put("uidNumber", String.valueOf(i));
attrs.put("gidNumber", String.valueOf(i));
attrs.put("homeDirectory", String.valueOf(i));
attrs.put("userPassword",secondName);
template.bind(dn, null, attrs);
}
}
本文参考其余文章改造,非全部原创