import javax.naming.Context;
import javax.naming.NamingEnumeration;
import javax.naming.directory.Attributes;
import javax.naming.directory.InitialDirContext;
import javax.naming.directory.SearchControls;
import javax.naming.directory.SearchResult;
public class Test {
public void queryFromSunLDAP() throws Exception {
Hashtable env = new Hashtable();
env.put(Context.INITIAL_CONTEXT_FACTORY,"com.sun.jndi.ldap.LdapCtxFactory");
env.put(Context.REFERRAL, "follow");
env.put(Context.PROVIDER_URL,"ldap://127.0.0.1:389/ou=services,dc=zu,dc=edu,dc=cn");
env.put(Context.SECURITY_PROTOCOL, "plain");
env.put("java.naming.ldap.version", "3");
env.put(Context.SECURITY_AUTHENTICATION, "simple");
env.put(Context.SECURITY_PRINCIPAL, "cn=directory manager");
env.put(Context.SECURITY_CREDENTIALS, "admin123");
env.put("com.sun.jndi.ldap.connect.pool", "true");
InitialDirContext ctx = new InitialDirContext(env);
NamingEnumeration answer = null;
try {
SearchControls ctls = new SearchControls();
ctls.setSearchScope(SearchControls.SUBTREE_SCOPE);
String filter = "(ou=*)";
answer = ctx.search("", filter, ctls);
SearchResult sr = null;
String name;
while (answer != null && answer.hasMore()) {
sr = (SearchResult) answer.next();
name = sr.getName();
}
answer.close();
} catch (Exception e) {
e.printStackTrace();
} finally {
ctx.close();
}
}
}
分享到:
相关推荐
2. **连接配置**:通过`InitialDirContext`实例化,提供URL(如`ldap://localhost:389`)和凭据。 ```java Properties env = new Properties(); env.put(Context.INITIAL_CONTEXT_FACTORY, ...
1. **建立连接:**通过`LdapHelper.java`类,初始化与LDAP服务器的连接。该类利用`javax.naming.directory`包下的`DirContext`接口及其子类`InitialDirContext`来实现。环境配置参数包括: - `Context.INITIAL_...
总结来说,Java操作LDAP涉及到理解目录服务的基本概念,熟悉Java LDAP API或Spring LDAP,以及如何安全地进行连接和数据操作。这些知识对于在企业级应用中实现身份验证、授权和其他目录服务功能至关重要。通过熟练...
在Java中,可以使用Java LDAP API来与LDAP服务器进行交互,执行查询、添加、删除、修改等操作。本指南将详细介绍如何使用Java LDAP API。 ### 1. LDAP简介 LDAP目录服务是一种存储组织数据的方式,它不同于传统的...
1. **InitialDirContext**: 这是JNDI中用于初始化目录上下文的主要类,通过它我们可以连接到 LDAP 服务器。创建实例通常需要一个环境属性映射,其中包含URL、用户名和密码等信息。 ```java Properties env = new ...
本指南涵盖了LDAP的基本概念,Java LDAP API的使用,以及如何通过Java进行连接、查询和操作LDAP目录。了解这些知识,开发者可以高效地在Java应用中整合LDAP服务,实现用户认证、权限管理等功能。记住,实践是检验...
以上就是Java中进行基本的LDAP操作实例,包括连接、添加、查询、修改和删除。这些操作是管理和维护LDAP目录服务的基础,开发者可以根据具体需求进行扩展和定制。在实际项目中,通常会封装成服务类或者使用专门的LDAP...
### Java通过LDAP验证Active Directory服务 #### 一、概述 在现代企业的IT环境中,集中式身份验证和权限管理系统变得越来越重要。其中,Active Directory (AD) 和 Lightweight Directory Access Protocol (LDAP) ...
以下是使用Java实现LDAP增、删、改、查操作的实例代码: ```java import javax.naming.Context; import javax.naming.directory.DirContext; import javax.naming.directory.InitialDirContext; public class ...
本源码正是一个基于Java实现的与LDAP服务器通信的示例,它有助于开发者理解如何在Java环境中建立和处理LDAP连接。 **MD5(Message-Digest Algorithm 5)**是一种广泛使用的哈希函数,能够将任意长度的数据转化为...
在Java中创建AD/LDAP账号,我们需要使用Java LDAP API,这是Java标准版(Java SE)的一部分,包含在javax.naming和javax.naming.ldap包中。下面是一些关键步骤和概念: 1. **连接到AD/LDAP服务器**: - 使用`...
JAAS(Java Authentication and Authorization Service,Java认证与授权服务)是Sun Microsystems为Java 2平台开发的一套安全框架扩展,旨在加强Java应用程序的安全性。JAAS是JDK 1.3的标准组件,并在JDK 1.4中得到...
在代码中,`connetLDAP()` 方法创建了一个`LdapContext` 实例,用于与AD域建立连接。 4. **属性设置**: 在 `Hashtable, Object> env` 中设置的属性是连接到LDAP服务器的关键参数: - `Context.SECURITY_PRINCIPAL`...
JNDI是Java平台的一部分,允许开发者查找和绑定数据,这些数据可以是任何类型,比如对象、配置信息、数据库连接等。JNDI通过提供统一的接口,使得开发者不必关心底层服务的具体实现,可以方便地接入各种命名和目录...
props.setProperty("java.naming.factory.initial", "com.sun.jndi.ldap.LdapCtxFactory"); props.setProperty("java.naming.provider.url", "ldap://ldap-server:389"); props.setProperty("java.naming.security....
Java 是一种广泛使用的面向对象的编程语言,由Sun Microsystems(现已被Oracle收购)开发。它以其“一次编写,到处运行”的特性著称,因为Java编译后的字节码可以在任何支持Java虚拟机(JVM)的平台上运行。 JavaEE...
- 创建`InitialLdapContext`实例来建立与LDAP服务器的连接。 - 捕获异常,处理认证失败或其他异常情况。 2. **获取用户DN (`getUserDN(String email)` 方法)**: ```java private String getUserDN(String ...
J2EE(Java 2 Platform, Enterprise Edition)是由Sun Microsystems公司提出的多层分布式企业级应用模型,支持组件式、分布式的业务应用。 - **特点**: - 多层结构:支持客户端层、Web层、业务层及企业信息系统层...
2. `commons-dbcp-1.2.1.jar`:Apache Commons DBCP(Database Connection Pool)是Java数据库连接池的实现,它为JNDI环境下的数据源管理提供了基础。通过DBCP,应用程序可以高效地管理和复用数据库连接,减少数据库...
在J2EE应用中,JNDI常被用来查找远程对象和服务,比如数据库连接池或EJB实例。 #### 5. JDBC (Java Database Connectivity) JDBC是一组用于与数据库交互的标准API,它允许Java程序与各种关系型数据库进行交互,执行...