项目背景:
某电信项目,使用LDAP存储用户信息。现在需要根据用户的“电话号码”获取其全部信息。
关键代码(我当时不会的):
[size=large][color=green]
// LDAPEntry nextEntry = searchResults.next();
// LDAPAttributeSet attSet = nextEntry.getAttributeSet();
// for (Iterator iterator = attSet.iterator(); iterator.hasNext();) {
// LDAPAttribute att = (LDAPAttribute) iterator.next();
// LDAPattrNameValue.add(att.getName() + ": " + att.getStringValue());
//}
[/color][/size]
详细代码:
// ConnectDIR
String ldapHost = "xxx.xxx.xxx.xxx";
// To get user's id
String loginDN = "0001";
// To get user's password
String password = "admin"
LDAPConnection lc = new LDAPConnection();
// connect the "LDAP Server"
lc.connect(ldapHost, LDAPConnection.DEFAULT_PORT);
// Binding "LDAP Server"
lc.bind(LDAPConnection.LDAP_V3, loginDN, password.getBytes("UTF8"));
//SearchBase、SearchFilter、SearchScope
String strSearchBase = CLdapBasednInfo.getBaseDnNe();
String strsearchFilter = "cn=" + telephoneNO.replaceFirst("0{1}", "");
int intSearchScope = LDAPConnection.SCOPE_SUB;
// search the LDAP BY the telephoneNO TO get ENTRY.
LDAPSearchResults searchResults = lc.search(strSearchBase,intSearchScope,strsearchFilter,null,false);
// searchResults.hasMore()
while (searchResults.hasMore()) {
LDAPEntry nextEntry = null;
try {
nextEntry = searchResults.next();
} catch (LDAPException ldape) {
throw ldape;
}
dn = nextEntry.getDN();
LDAPattrNameValue.add("dn:" + dn);
LDAPAttributeSet attSet = nextEntry.getAttributeSet();
for (Iterator iterator = attSet.iterator(); iterator.hasNext();) {
LDAPAttribute att = (LDAPAttribute) iterator.next();
LDAPattrNameValue.add(att.getName() + ": " + att.getStringValue());
}
}
lc.disconnect();
// catch(LDAPException ldape)
// ===
// LDAPEntry nextEntry = searchResults.next();
// LDAPAttributeSet attSet = nextEntry.getAttributeSet();
// for (Iterator iterator = attSet.iterator(); iterator.hasNext();) {
// LDAPAttribute att = (LDAPAttribute) iterator.next();
// LDAPattrNameValue.add(att.getName() + ": " + att.getStringValue());
//}
可供参考的网站:
"Download URL:"
http://www.findjar.com/jar/com.novell.ldap/jars/jldap-4.3.jar.html
"Tutorial"
http://quark.humbug.org.au/publications/ldap/ldap_tut.html
分享到:
相关推荐
JAVA中使用LDAP进行用户认证 JAVA中使用LDAP进行用户认证是指在JAVA应用程序中使用轻量级目录访问协议(LDAP)来进行用户身份验证。LDAP是一种基于X.500标准的目录访问协议,但它更简单、更灵活,可以根据需要进行...
在Java中,使用LDAP进行用户验证通常涉及以下步骤: 1. 创建初始上下文:使用`InitialDirContext`类初始化到 LDAP 服务器的连接。 2. 实现认证:通过提供用户名和密码,使用`DirContext`的`bind`方法进行身份验证。 ...
Java LDAP操作步骤 - **连接LDAP服务器**:使用`InitialDirContext`类创建一个上下文对象,需要提供连接参数,如URL和凭据。 ```java Properties env = new Properties(); env.put(Context.INITIAL_CONTEXT_FACTORY...
在Java中,我们可以使用Java LDAP API来与LDAP服务器通信。这个API包含在Java的`javax.naming`和`javax.naming.ldap`包中,提供了丰富的类和接口,如`InitialLdapContext`、`NamingEnumeration`和`DirContext`等,...
在Java中,可以使用JNDI(Java Naming and Directory Interface)API来与LDAP服务器进行交互。 **CAS(Central Authentication Service)** CAS是一个开源的身份验证框架,由耶鲁大学开发,主要用于实现单点登录...
总结起来,通过Java操作LDAP涉及的主要步骤有: 1. 初始化目录上下文。 2. 设置搜索过滤器和约束。 3. 执行搜索操作并处理结果。 4. 获取并处理目标对象的属性。 了解这些基本概念后,开发者可以根据具体需求,如...
### JAVA中使用LDAP进行用户认证的关键知识点 #### LDAP简介与特性 LDAP,即轻量级目录访问协议(Lightweight Directory Access Protocol),源自X.500标准,但更简化且可定制。它支持TCP/IP协议,是互联网环境下...
下面是一个简单的Java LDAP查询示例: ```java import javax.naming.*; import javax.naming.ldap.InitialLdapContext; public class LdapExample { public static void main(String[] args) throws ...
**LDAP搭建及其Java代码连接** ...通过上述步骤,你可以建立一个基本的LDAP环境,并使用Java进行交互。实际应用中,还需考虑性能优化、安全性(如SSL/TLS加密、Kerberos集成)以及目录同步等问题。
在Java中,我们可以使用JNDI(Java Naming and Directory Interface)来操作LDAP服务器,例如IBM Directory Server。本文将深入探讨如何使用Java与IBM Directory Server LDAP v3进行交互。** ### 1. JNDI简介 JNDI...
**使用Java进行LDAP操作时,主要涉及以下几个步骤:** 1. **连接 LDAP 服务器**:首先,需要建立一个环境属性对象,并配置 LDAP 服务器的URL、端口、基础DN(Distinguished Name)等信息。然后,使用...
下面是一段简单的Java代码示例,展示了如何使用JNDI连接到LDAP服务器: ```java import javax.naming.Context; import javax.naming.InitialContext; import javax.naming.NamingException; import javax.naming....
在Java中,我们通常使用JNDI(Java Naming and Directory Interface)来与LDAP服务器交互。JNDI是一个API,它为多种命名和目录服务提供了统一的接口,包括LDAP。在本项目中,可能包含了一个或多个Java类,这些类封装...
**Spring LDAP的使用步骤** 1. **配置ContextSource**: 在Spring配置文件中定义一个ContextSource,如: ```xml <bean id="contextSource" class="org.springframework.ldap.core.support.LdapContextSource"> ...
以上内容详细介绍了在CentOS7环境下安装、配置OpenLDAP服务器,使用phpLDAPadmin进行图形化管理,以及如何通过Java LDAP API与LDAP服务器进行数据交互。这些步骤对于构建企业级的身份认证和授权系统至关重要。在实际...
配置Open LDAP使用TLS通信一般需要以下步骤: 1. 生成SSL证书和私钥:首先需要为LDAP服务器生成一个SSL证书和对应的私钥。这通常需要使用OpenSSL这样的工具来完成。生成的证书可以是自签名的,也可以是从证书颁发...
本文档主要介绍了如何使用 Java 通过 LDAP 协议修改 Active Directory(AD)域用户密码的详细步骤。下面将对标题、描述、标签和部分内容进行详细解释。 一、标题和描述 标题“java 使用 ldap 修改 ad 域用户密码....
这篇博客文章“使用 Spring LDAP 读取数据并映射到 Java Bean 中”主要探讨了如何通过Spring LDAP来查询LDAP目录信息,并将查询结果转换为Java对象,以便在应用程序中进一步处理。 首先,`pom.xml`文件是Maven项目...
3. **数据转换**: 设计一个转换类,使用反射方法读取ldap条目的属性,并将其赋值给对应的Java对象。 4. **查询操作**: 使用`LdapTemplate`进行查询、增删改查等操作。例如,查找特定用户、更新用户信息等。 5. **...
以下是一个简单的示例代码 `Java4Ldap.java`: ```java import javax.naming.*; import javax.naming.directory.*; public class Java4Ldap { public static void main(String[] args) { // LDAP连接参数 ...