对于NOVELL LDAP 轻量级目录服务的学习理解
采用NOVELL 的API
用到得包如下
import com.novell.ldap.LDAPAttributeSet;
import com.novell.ldap.LDAPConnection;
import com.novell.ldap.LDAPAttribute;
import com.novell.ldap.LDAPEntry;
import com.novell.ldap.LDAPException;
如何获取到一个LDAP服务器的连接
首先要知道
服务器地址
ldapHost,
服务器端口
ldapPort, 默认为 LDAPConnection.DEFAULT_PORT|389
服务器版本
ldapVersion, 默认为 LDAPConnection.LDAP_V3|3
服务器管理员
DN,
服务器密码
password,
第一步
LDAPConnection
lc = new LDAPConnection();
lc.connect(ldapHost,ldapPort);
lc.bind(ldapVersion,
username, password.getBytes("UTF8"));
如果没抛异常,lc即为到LDAPConnection的连接
在操作完成之后一定要关闭LDAP连接
lc.disconnect();
如何在LDAP服务器中加入一个实体即com.novell.ldap.LDAPEntry;
定义LDAPAttributeSet
attributeSet = new LDAPAttributeSet();
在attributeSet
中加入属性 注意各种实体参数正确 比如 objectclass 具体说明见:ldap 协议 objectclasses 与
attribute
attributeSet.add(new
LDAPAttribute("objectclass", "inetOrgPerson"));
attributeSet.add(new
LDAPAttribute("riseGUID", riseGUID.toString()));
attributeSet.add(new
LDAPAttribute("fullName", name));
attributeSet.add(new
LDAPAttribute("userpassword", password));
attributeSet.add(new
LDAPAttribute("sn", name));
确定实体dn 即实体在
LDAP 上的树形结构中的位置
建立实体对象
LDAPEntry
newEntry = new LDAPEntry(dn, attributeSet);
通过
LDAPConnection 连接 添加此实体
lc.add(newEntry);
如何在LDAP服务器中获取某实体
第一、获取到LDAP服务器的管理员连接
第二、确定查找参数
包括:该实体的DN 、String returnAttrs[] = {
"LoginDisabled",
"loginExpirationTime","passwordExpirationTime","loginAllowedTimeMap","lockedByIntruder"
};
//字符串数组
表示要查找的参数 类似数据库中要查找的数据表字段名
第三、验证某实体的属性
LDAPAttribute
attribute = new LDAPAttribute("userPassword", userPWD);
lc.compare(userDN,
attribute) //返回true
or false 可以用来判断用户的密码是否正确
第四、进行查找
LDAPEntry
entry = lc.read(userDN, returnAttrs); //返回的是 LDAPEntry 对象 通过
LDAPEntry 对象来获取该实体的信息
如何在LDAP服务器中查找实体
第一、获取到LDAP服务器的管理员连接
第二、确定查找范围,查找参数,查找内容等
如:String
searchBase = "o=武钢氧气有限责任公司";
String
searchFilter = "(cn=a000001)";
// 此处为查找表达式,支持正则表达式
String
searchScope = LDAPConnection.SCOPE_ONE
// 只查找基节点第一层的子节点
|LDAPConnection.SCOPE_BASE //
只查找基节点
|LDAPConnection.SCOPE_SUB
// 查找基节点下面的所有子节点
第三、根据参数进行查找
返回 LDAPSearchResults 对象
LDAPSearchResults
searchResults = lc.search(searchBase,
searchScope,
searchFilter, new String[] { "cn",
"objectClass",
"userPassword","riseGUID"},false);
//
此方法中字符串数组表示查询的实体的属性,并在结果中返回这些属性
第四:列出查询结果
while
(searchResults.hasMore()) {
//LDAPSearchResults
实现了 collection 接口
LDAPEntry
le = searchResults.next();
//结果集中每个内容都是一个
LDAPEntry 对象
System.out.println(le.getDN());
LDAPAttributeSet
attributeSet = le.getAttributeSet(); //通过
LDAPEntry 对象来获取 LDAPAttributeSet 对象
Set
sortedAttributes = new TreeSet(attributeSet);
Iterator
allAttributes = sortedAttributes.iterator();
while
(allAttributes.hasNext()) {
LDAPAttribute
attribute = (LDAPAttribute) allAttributes.next();
String
attributeName = attribute.getName();
//获取参数名
System.out.println("\t\t"
+
attributeName);
Enumeration
allValues = attribute.getStringValues();//其参数值可以为多个,利用Enumeration
列出全部该属性的值
if
(allValues != null) {
while
(allValues.hasMoreElements()) {
String
Value = (String) allValues.nextElement();
System.out.println("\t\t\t"
+ Value);
}
}
}
}
如何修改、删除 已存在的某实体的 属性 Attribute
第一、获取到LDAP服务器的管理员连接
第二、创建该实体要修改的属性列表
ArrayList modList = new ArrayList();
第三、用
LDAPModification 对象填充该列表 如:
LDAPAttribute
attribute = new LDAPAttribute("telephoneNumber", "1 801 555
1212");
modList.add(new
LDAPModification(LDAPModification.ADD, attribute));
//
这里 LDAPModification 对象有几种方式
LDAPModification.ADD、LDAPModification.DELETE、LDAPModification.REPLACE
第四、用list填充
LDAPModification 对象
LDAPModification[]
modsadd = new LDAPModification[modList.size()];
modsadd
= (LDAPModification[]) modList.toArray(modsadd);
第五、通过
LDAP连接就行修改操作
lc.modify(dn,
modsadd);
//注:lc为LDAP服务器的连接
modsadd 为封装后的LDAPModification 对象
如何删除某个已存在实体
通过获取LDAP连接
deleteDN为该节点的DN
lc.delete(deleteDN);
JLDAP 访问LDAP服务器的错误代码含义(已知的)
91:Unable to connect to server 172.16.5.12:389 (91) Connect
Error //在获取连接的时候LDAP 服务器连接地址或端口不正确
68:Entry Already Exists (68) Entry Already Exists
//添加实体时抛出实体已经存在信息
32:No Such Object (32) No Such
Object //实体不存在
分享到:
相关推荐
Novell eDirectory 是一款高级目录服务解决方案,支持 LDAP(轻量级目录访问协议)标准,被广泛用于企业环境中管理用户账户、组、策略等目录信息。 #### 安装与配置步骤 ##### 准备阶段 - **操作系统**: 使用 OES...
1. **LDAP协议**: LDAP是一种轻量级的目录访问协议,它允许用户查询和修改存储在分布式目录服务中的信息。这种服务通常用于存储用户账户、组信息、配置数据等,并提供快速查找和验证身份的功能。 2. **Novell LDAP ...
X.500目录服务是一种基于OSI网络协议的目录服务标准,它是LDAP(轻量级目录访问协议)的前身。X.500的核心在于提供一种全局性的目录服务框架,允许组织间共享目录信息。然而,X.500的一个主要缺点是它并不直接支持...
LDAP(轻量级目录访问协议)是一种用于访问和管理分布式目录信息的标准协议,它在IT行业中广泛应用于身份验证、用户账户管理、权限控制等多个领域。相较于X.500,LDAP更加轻量、高效,并且适应互联网环境。 X.500是...
LDAP(Lightweight Directory Access Protocol)是一种轻量级目录访问协议,用于存储和检索分布式目录服务中的信息。它基于X.500标准,但设计得更为简洁,适合互联网环境。LDAP允许用户通过简单的查询语言查找、添加...
JXplorer 是一个轻量级且跨平台的 LDAP 浏览器,适用于 Windows、Linux 和 MacOS 操作系统。它的特点是拥有简洁的用户界面,让用户能够快速地浏览、搜索和修改 LDAP 目录。JXplorer 支持多种 LDAP 协议和安全性设置...
LDAP(Lightweight Directory Access Protocol)是一种轻量级目录访问协议,常用于组织和管理分布式身份信息。它提供了一种标准的方式来存储和检索用户、组、服务等对象的数据。一个 LDAP 编辑器是专门设计用来与 ...
它被设计成一种轻量级、易于部署和使用的目录服务协议。 - **主要用途**:主要用于存储、检索和管理用户账号数据,如电子邮件地址、电话号码等,以及组织结构信息。 #### 2. LDAP的历史与发展 - LDAP是由Internet ...
LDAP(轻量级目录访问协议)浏览器是一种用于交互式浏览和管理基于LDAP的目录服务的工具。在标题"LDAP浏览器2.5"中,我们可以理解这是一款特定版本的软件,专为开发和操作Ldap环境提供便利。版本号2.5表明这是该工具...
【Softerra LDAP Browser 4.5 (64-bit)】是一款专为IT专业人士设计的轻量级且功能强大的LDAP(轻量目录访问协议)浏览器工具。它允许用户轻松地探索、管理和维护LDAP目录服务器,提供了高效的数据查看、编辑和管理...
LDAP(Lightweight Directory Access Protocol)是一种轻量级目录访问协议,它被设计用于快速查找和管理分布式目录信息。在IT环境中,LDAP通常用于存储和管理用户账户、权限、组信息等,是企业实现身份验证、授权和...
在IT行业中,LDAP(轻量级目录访问协议)是一种广泛应用于网络目录服务的标准协议,它允许用户和应用程序查询和修改分布式目录服务信息。C#作为.NET框架的主要编程语言,提供了丰富的库来与LDAP服务器进行交互。本文...
无论是使用Spring框架中的`LDAPTemplate`还是轻量级的`JLDAP`,都可以有效地实现对LDAP服务的访问。选择哪种方式取决于具体的应用场景和需求: - 如果需要与Spring框架集成并且享受其带来的便利,那么`LDAPTemplate`...
**LDAP(轻量级目录访问协议)**是一种用于管理和访问分布式目录服务的协议,它允许网络用户通过TCP/IP协议在互联网上查找、编辑和管理目录信息。LDAPAdmin是一款专为系统管理员设计的实用工具,方便他们高效地进行...
描述中提到的“lib-v2.1.4 novell LDAP 开发库”进一步明确了这个库是针对Novell公司的轻量级目录访问协议(LDAP)的。LDAP是一种行业标准协议,用于访问和管理分布式目录服务,如用户账户、组信息、网络资源位置等...
《EAD与LDAP服务器配合方案》这篇文档主要讨论了如何在软件开发领域中,利用EAD(Endpoint Admission Decision,端点准入决策)系统与LDAP(Lightweight Directory Access Protocol,轻量级目录访问协议)服务器相...
本方案探讨了EAD如何与LDAP(Lightweight Directory Access Protocol,轻量级目录访问协议)服务器协同工作,以提供更高效、安全的网络接入管理。 **适用行业** EAD与LDAP服务器的配合方案广泛适用于政府机关、...
Jxplorer是一款开源、跨平台的轻量级 LDAP (Lightweight Directory Access Protocol) 浏览器和编辑器。它为用户提供了直观且易用的界面,使得对LDAP目录服务的数据操作变得简单而高效。这款绿色版的Jxplorer无需安装...
LDAP(轻量级目录访问协议)是一种用于访问和管理分布式目录服务的开放标准协议。它允许用户快速查找、修改和管理网络中的信息,如用户账户、组、网络资源等。在Java中,我们可以利用Java LDAP API来与LDAP服务器...
然而,X.500 的 **目录访问协议(DAP)** 实现起来较为复杂,且客户端负担重,因此后来发展出了更简洁的版本 **轻量级目录访问协议(LDAP)**。 **LDAP** 是一种简化版的 DAP,旨在降低实现难度和减轻客户端的负担。...