LDAP现在用的越来越多,所谓LDAP既Lightweight Directory Access Protocol。关于它的一些基本知识,我在这里就不做系统的介绍了,网上有很多的资料。我主要说一下在JAVA的语言环境中,怎样来操作LDAP。
在这里,我推荐两个工具:LDAPTemplate和JLDAP。 网上的资料比较少,而且不少都是E文的,可能英语不太好的朋友,就很难入门了。在这我把我的经验总结一下,和大家分享。 LDAPTemplate是基于Spring1.2.7来开发的,其用法和Spring的JDBCTemplate差不多。最初,我是用这个开源的框架来对LDAP进行操作的,但是后来由于开发工具的转变,由eclipse转到了RAD上,而RAD所用的JDK却不支持Spring1.2.7(看来网上的谣传没错,IBM总在某个阴暗的角落在和SUN作对),没办法,只好另辟蹊径。后来发现了JLDAP,经过一番研究,发现它用起来并不比LDAPTemplate复杂,但在对象持久化方面需要自己去做,而LDAPTemplate通过AttributeMappers就可以把查询到的结果转换成POJO了。下面来具体的说一下怎么用JLDAP。首先要去下载一下JLDAP,具体下载的地址可以上网去搜。下载下来以后,lib里面的是开发所要用到的包,doc里面是帮助文档API和示例程序。 先说说怎么查询,其实查询非常的简单,如果用过JDBC连数据库的话,那么连LDAP相比起来更加的简单。 首先建立一个LDAPConnection对象。这个对象也可以通过连接池PoolManager来获得。LDAPConnection con = new LDAPConnection();然后运行connect方法和bind方法。连接上LDAP以后,就可以通过search方法来查找数据了。示例程序如下:java 代码
LDAPConnection lc = new LDAPConnection();
try {
lc.connect("6.1.19.154",389);
lc.bind(LDAPConnection.LDAP_V3,"cn=xxx","xxxxxx");
LDAPSearchResults rs = lc.search("dc=excel,dc=com,dc=cn",LDAPConnection.SCOPE_SUB,"objectClass=*",null,false);
int count = 0;
while(rs.hasMore()){
LDAPEntry entry = rs.next();
System.out.println(entry.getDN());
count++;
}
System.out.println("共有"+count+"条记录。");
} catch (LDAPException e) {
System.err.print("连接异常! ");
e.printStackTrace();
}
虽然LDAP主要是用来进行读操作的,但不可避免的,我们也要向其中添加一些新的数据。用JLDAP向LDAP服务器添加数据的操作也是非常简单的。
为什么说非常简单呢,因为大体上也就是分三步。第一步,连接LDAP服务器。第二步,建立一个要添加的新的实体LDAPEntry,并添加相应的属性。第三步,通过add方法向LDAP中添加实体。 首先说连接服务器。还是非常简单的三步:java 代码
LDAPConnection con = new LDAPConnection();
con.connect("hostname",hostport);
con.bind("version","DN","password");
连接后,可以建实体了,也就相当与为数据库添加一条新的记录。这里用到了几个类:LDAPEntry、LDAPAttribute和LDAPAttributeSet。首先建立一个LDAPAttributeSet,然后建立各种的LDAPAttribute,把他们add到LDAPAttributeSet中。然后建立一个LDAPEntry。其构造函数有两个参数,一个是这个LDAPEntry的DN,一个是他的属性集合,也就是LDAPAttributeSet。 最后,调用LDAPConnection实例化对象的add方法,把实体添加到服务器中。然后别忘了断开连接喔。整体的示例代码如下:java 代码
LDAPAttributeSet attributeSet = new LDAPAttributeSet();
attributeSet.add(new LDAPAttribute("objectclass", new String(
"inetOrgPerson")));
attributeSet.add(new LDAPAttribute("cn", new String[] { "李",
"Jim Smith", "Jimmy Smith" }));
attributeSet.add(new LDAPAttribute("givenname", new String[] { "测试",
"Jim", "Jimmy" }));
attributeSet.add(new LDAPAttribute("sn", new String("Smith")));
attributeSet.add(new LDAPAttribute("telephonenumber", new String(
"1 801 555 1212")));
attributeSet.add(new LDAPAttribute("mail",
new String("JSmith@Acme.com")));
attributeSet.add(new LDAPAttribute("userpassword", new String(
"newpassword")));
LDAPEntry entry = new LDAPEntry("cn=李,cn=Lizl,dc=excel,dc=com,dc=cn",
attributeSet);
LDAPConnection con = new LDAPConnection();
con.connect("6.1.19.154", 389);
con.bind(LDAPConnection.LDAP_V3, "cn=XXX", "XXXXXX");
con.add(entry);
System.out.println("成功的添加了一条记录!");
con.disconnect();
这里来说一说怎么从LDAP中删除一个实体。 首先,连接LDAP服务器,然后通过DN来删除一个实体。示例代码如下:java 代码
LDAPConnection con = new LDAPConnection();
con.connect("6.1.19.154",389);
con.bind(LDAPConnection.LDAP_V3,"cn=XXXX","XXXXXX");
con.delete("cn=JSmith,dc=excel,dc=com,dc=cn");
System.out.println("成功删除一条记录!");
分享到:
相关推荐
LDAP(Lightweight Directory Access Protocol)是一种轻量级目录访问协议,常用于组织和管理分布式身份信息。它提供了一种标准的方式来存储和检索用户、组、服务等对象的数据。一个 LDAP 编辑器是专门设计用来与 ...
4. 配置Spring LDAP: 在Spring配置文件中,你需要设置LDAP服务器的相关信息,如URL、端口、用户名和密码。此外,还需要配置`LdapContextSource`以创建连接池,以及`LdapTemplate`实例以供应用程序使用。 5. ...
本文将详细介绍如何使用Java来实现对LDAP的访问,主要探讨两种方式:使用`LDAPTemplate`和使用`JLDAP`。 #### 二、使用LDAPTemplate访问LDAP ##### 2.1 LDAPTemplate介绍 `LDAPTemplate`是Spring框架中提供的一种...
OwnCloud的LDAP架构参考: : ownCloud架构OwnCloud Inc.已注册 ,我们对其进行了扩展以定义所需的LDAP对象OID :1.3.6.1.4.1.39430.1.2.1 ObjectClass :ownCloud配额字段ownCloud可以读取LDAP属性并根据其值设置...
禅道开源版11.5 LDAP插件是一个用于禅道项目管理软件的扩展工具,它主要功能是集成轻量级目录访问协议(LDAP)进行用户身份验证。此插件允许禅道系统与LDAP服务器通信,使得用户可以通过已有的LDAP账户登录禅道,...
**JNDI(Java Naming and Directory Interface)**是Java平台中的一个标准API,它允许Java应用程序访问各种命名和目录服务,如LDAP(Lightweight Directory Access Protocol)。在Java应用中,JNDI通常用于管理和...
在日常的IT运维工作中,LDAP(轻量目录访问协议)作为一项常用的身份认证与管理技术,在企业级应用中占据着重要的位置。然而,在部署、维护或者调试LDAP服务的过程中,难免会遇到各种各样的错误。正确理解和解析这些...
LdapBrowser是一款开源的LDAP客户端工具,适用于系统管理员和开发者。它提供了图形化的界面,方便用户浏览、编辑、管理服务器上的LDAP目录。LdapBrowser 2.82版提供了以下主要功能: 1. **目录浏览**:用户可以查看...
IBM LDAP(Lightweight Directory Access Protocol)是IBM提供的一种基于X.500标准的轻量级目录访问协议,用于在分布式环境中存储和检索用户信息、配置数据和其他对象。本篇文章将深入探讨IBM LDAP的基础知识,并...
在IT行业中,Spring Boot是一个非常流行的微服务框架,它简化了Spring应用的初始化和配置过程。而LDAP(Lightweight Directory Access Protocol)则是一种用于存储和检索分布式目录信息的标准协议,常用于用户身份...
ldap.url=ldap://localhost:389 ldap.base_dn=dc=example,dc=com ldap.user_dn=cn=admin,dc=example,dc=com ldap.password=secret ``` 2. 配置 LDAP 用户认证:在 confluence/WEB-INF/classes/confluence-init....
springldap增删改查的源码 适合初学者下载学习 写的很简答 注释中加入了自己写代码遇到的问题解决方案和心得
3. **权限设置**:配置 LDAP 用户和组的权限,控制他们可以访问哪些资源。 4. **故障排查**:通过工具进行日志查看和诊断,帮助定位 LDAP 服务的问题。 5. **安全性检查**:测试 LDAP 服务器的 SSL/TLS 配置,确保...
OpenLDAP是开源的LDAP实现,它提供了一个灵活、可扩展的目录服务框架,可用于构建企业级的身份认证和授权系统。OpenLDAP支持多种操作系统,包括Windows、Linux和Unix等。 **三、LdapBrowser在IT管理中的应用** 1. ...
python脚本会定期检查并创建新的LDAP帐户,并使用mailcow API停用已删除和已禁用的LDAP帐户。 它还在SOGo和dovecot中启用LDAP身份验证。 用法 创建一个data/ldap目录。 用于同步SQLite数据库将存储在此处。 使用...
LDAP(轻量级目录访问协议)是一种用于访问和管理分布式目录服务的开放标准协议。它允许用户快速查找、修改和管理网络中的信息,如用户账户、组、网络资源等。在Java中,我们可以利用Java LDAP API来与LDAP服务器...
在本主题中,我们将详细探讨如何在CentOS操作系统上安装LDAP服务器,并利用Java编程语言来访问存储在LDAP中的数据。 首先,让我们详细了解一下在CentOS上安装和配置LDAP的过程: 1. **安装OpenLDAP**: 在CentOS...
LDAP(Lightweight Directory Access Protocol),即轻量级目录访问协议,是一种用于访问目录服务的协议。它是 X.500 目录访问协议的移植,但是简化了实现方法。 LDAP 的特点: * 高效的目录查询操作 * 简单的管理...
其中,Java 6.0 API for LDAP 是一个基于 Java 的 LDAP 访问 API,提供了多种类和方法来连接和访问 LDAP 服务器。 在 Java 6.0 API for LDAP 中,javax.naming.directory 包提供了多种类和方法来连接和访问 LDAP ...