Spring-LDAP
下载地址 :http://www.springframework.org/ldap
用Spring LDAP最小需要:
* spring-ldap(spring-ldap包)
* spring-core(用于框架内部的丰富的工具类)
* spring-beans(方便操作java beans的接口和类)
* spring-context(增加通过一致API为应用对象获取资源的能力)
* spring-dao(使经常性的错误处理跟使用中的数据访问分开的异常处理机制)
* commons-logging(简单的日志处理,内部使用)
UserDaoLdapImpl
Java代码
package cn.com.ldap;
import java.util.List;
import javax.naming.NamingException;
import javax.naming.directory.Attributes;
import org.springframework.ldap.core.AttributesMapper;
import org.springframework.ldap.core.LdapTemplate;
import cn.com.ldap.Preson.Person;
/**
* @author Wangyaodi version 1.0 2008-6-12 | 下午02:55:25
*/
public class UserDaoLdapImpl {
private LdapTemplate ldapTemplate;
public void setLdapTemplate(LdapTemplate ldapTemplate) {
this.ldapTemplate = ldapTemplate;
}
public List getAllPersonNames() {
return ldapTemplate.search("", "(objectclass=person)",
new AttributesMapper() {
public Object mapFromAttributes(Attributes attrs)
throws NamingException {
return attrs.get("cn").get();
}
});
}
}
package cn.com.ldap;
import java.util.List;
import javax.naming.NamingException;
import javax.naming.directory.Attributes;
import org.springframework.ldap.core.AttributesMapper;
import org.springframework.ldap.core.LdapTemplate;
import cn.com.ldap.Preson.Person;
/**
* @author Wangyaodi version 1.0 2008-6-12 | 下午02:55:25
*/
public class UserDaoLdapImpl {
private LdapTemplate ldapTemplate;
public void setLdapTemplate(LdapTemplate ldapTemplate) {
this.ldapTemplate = ldapTemplate;
}
public List getAllPersonNames() {
return ldapTemplate.search("", "(objectclass=person)",
new AttributesMapper() {
public Object mapFromAttributes(Attributes attrs)
throws NamingException {
return attrs.get("cn").get();
}
});
}
}
preson:
Java代码
package cn.com.ldap;
public class Preson {
public class Person {
private String cn;
private String sn;
public String getCn() {
return cn;
}
public void setCn(String cn) {
this.cn = cn;
}
public String getSn() {
return sn;
}
public void setSn(String sn) {
this.sn = sn;
}
}
}
package cn.com.ldap;
public class Preson {
public class Person {
private String cn;
private String sn;
public String getCn() {
return cn;
}
public void setCn(String cn) {
this.cn = cn;
}
public String getSn() {
return sn;
}
public void setSn(String sn) {
this.sn = sn;
}
}
}
applicationContext.xml
Xml代码
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<bean id="contextSource"
class="org.springframework.ldap.core.support.LdapContextSource">
<property name="url" value="ldap://192.168.16.XXX:389" />
<property name="base" value="OU=XXX,OU=XXX,OU=XXX,OU=XXX,DC=XXX,DC=XXX,DC=XXX" />
<property name="userName" value="XXX@headquarter" />
<property name="password" value="XXX" />
</bean>
<bean id="ldapTemplate"
class="org.springframework.ldap.core.LdapTemplate">
<constructor-arg ref="contextSource" />
</bean>
<bean id="userDao" class="cn.com.ldap.UserDaoLdapImpl">
<property name="ldapTemplate">
<ref bean="ldapTemplate" />
</property>
</bean>
</beans>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<bean id="contextSource"
class="org.springframework.ldap.core.support.LdapContextSource">
<property name="url" value="ldap://192.168.16.XXX:389" />
<property name="base" value="OU=XXX,OU=XXX,OU=XXX,OU=XXX,DC=XXX,DC=XXX,DC=XXX" />
<property name="userName" value="XXX@headquarter" />
<property name="password" value="XXX" />
</bean>
<bean id="ldapTemplate"
class="org.springframework.ldap.core.LdapTemplate">
<constructor-arg ref="contextSource" />
</bean>
<bean id="userDao" class="cn.com.ldap.UserDaoLdapImpl">
<property name="ldapTemplate">
<ref bean="ldapTemplate" />
</property>
</bean>
</beans>
main
Java代码
public static void main(String[] args) {
ApplicationContext cxt = new ClassPathXmlApplicationContext("applicationContext.xml");
UserDaoLdapImpl userDao = (UserDaoLdapImpl)cxt.getBean("userDao");
List users = userDao.getAllPersonNames();
System.out.println(users.size());
}
分享到:
相关推荐
Spring框架与LDAP(轻量级目录访问协议)的结合使用,可以实现高效的单点登录(Single Sign-On,简称SSO)系统。SSO允许用户在多个应用系统中只需要登录一次,即可访问所有相互信任的应用系统,提高了用户体验并简化...
根据给定的文件信息,以下是对“Spring-LDAP”参考文档的知识点总结与扩展: ### Spring-LDAP概述 Spring-LDAP是Spring框架的一部分,专注于提供与轻量级目录访问协议(LDAP)集成的功能。它简化了开发人员在Java...
在本篇博客“spring ldap操作(一)目录测试环境搭建”中,我们将深入探讨如何在Java应用程序中使用Spring LDAP框架来操作LDAP(轻量级目录访问协议)服务器,以及如何搭建一个测试环境来验证和调试相关功能。Spring...
之前用ldap.jar查询记录最多只能1000行,后面在网上找到了个方法,可以自定义最大记录数,代码是这样的: [java] view plain copy netscape.ldap.LDAPConnection lc = new netscape.ldap.LDAPConnection();...
项目可能涉及到的技术有Java、Spring框架、JNDI(Java Naming and Directory Interface)用于与LDAP交互,以及Apache ActiveMQ或RabbitMQ作为MOM实现。开发环境可能包括Eclipse或IntelliJ IDEA等IDE,以及Git进行...
Vue+Jwt+SpringBoot+Ldap完成登录认证的示例代码 本篇文章主要介绍了使用Vue、Jwt、SpringBoot和Ldap完成登录认证的示例代码,旨在帮助读者了解如何使用这些技术来实现安全的登录认证机制。 首先,让我们了解一下...
在IT领域,LDAP(Lightweight Directory Access Protocol)是一种用于访问和管理分布式目录服务的标准协议,广泛应用于用户身份验证和授权。JNDI(Java Naming and Directory Interface)是Java平台的一个接口,它...