最近利用空闲时间研究了一把LDAP,然后用spring进行了一些编程尝试,通过spring的LdapTemplate可以很方便的进行LDAP的CRUD操作。如果你不清楚啥是LDAP的话,可以查询相关资料后再看此文。一般来说LDAP可以用来作为一个用户中心,围绕LDAP可以部署一些应用来共享相同的账号,这个在企业管理中是非常有帮助的,因为企业的内部应用可能是几个到几十个,员工如果有统一的账号密码,那将非常方便。
我也是因为内部需要,围绕LDAP做了一些应用集成,使用的LDAP服务器是apache的DS,标准的LDAP协议,客户端编程用java,使用spring的LdapTemplate类进行操作。使用maven管理的话,在项目中加入如下依赖:
<dependency> <groupId>com.sun</groupId> <artifactId>ldapbp</artifactId> <version>1.0</version></dependency><dependency> <groupId>org.springframework</groupId> <artifactId>spring-ldap</artifactId> <version>1.1.2</version></dependency>
然后就可以使用LDAP进行操作了,当然了也要加入其它的spring对应的包,比如core包等,下面分别说明使用spring的LdapTemplate如何进行操作。注意,在应用之前请先配置好apache-DS服务(请参考文章xxx)。
1、初始化LdapTemplate
private static final LdapTemplate template; static { LdapContextSource cs = new LdapContextSource(); cs.setCacheEnvironmentProperties(false); cs.setUrl("ldap://192.168.1.188:10389"); cs.setBase("dc=mzone,dc=cc"); cs.setAuthenticationSource(new AuthenticationSource() { @Override public String getCredentials() {