1. 使用Spring配置文件配置Ldap认证源
在Spring中配置Ldap的过程与配置JDBC的过程类似,Ldap比JDBC多出一个base属性,这个是配置Ldap基结点(注意:这个基结点不仅仅指{zg}父节点),之后Ldap会查找基节点下所有子节点的信息。
<bean id="ldapContextSource"
class="org.springframework.ldap.support.LdapContextSource">
<property name="url" value="ldap://localhost:10389" />
<property name="base" value="ou=People,ou=rootOrg,o=sevenSeas" />
<property name="userName" value="uid=admin,ou=system" />
<property name="password" value="secret" />
</bean>
注意红字标示部分"ou=People,ou=rootOrg,o=sevenSeas"的顺序,这句话的意思是:基节点的位置是sevenSeas父节点下的rootOrg节点下的People节点;再次强调,这个解释是由于顺序的原因,父节点要在子节点的右面这样,当前Ldap源的数据就是在这个基节点下的各子节点中操作。
如图:
people基节点下的用户
2. SpringTemplate的Ldap测试代码编写
在配置文件中,需要配置数据源和LdapTemplate,LdapTemplate就是Spring提供的操作Ldap服务器数据的类。
配置文件applicationContext-ldap.xml:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:aop="http://www.springframework.org/schema/aop"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-2.0.xsd">
<bean id="ldapContextSource"
class="org.springframework.ldap.support.LdapContextSource">
<property name="url" value="ldap://localhost:10389" />
<property name="base" value="ou=People,ou=rootOrg,o=sevenSeas" />
<property name="userName" value="uid=admin,ou=system" />
<property name="password" value="secret" />
</bean>
<bean id="ldapTemplate" class="org.springframework.ldap.LdapTemplate">
<property name="contextSource" ref="ldapContextSource" />
</bean>
</beans>