java 代码
一共两个java类,加一个配置文件
LDAP.java---------------连接LDAP服务器,判断用户名密码正确与否
UMParas.java----------jDom解析xml配置文件
ldapconfig.xml---------配置文件,里面有服务器的参数信息
LDAP.java 代码
- package ldap2;
-
- import java.util.Hashtable;
- import javax.naming.AuthenticationException;
- import javax.naming.Context;
- import javax.naming.InitialContext;
- import javax.naming.NamingException;
- import javax.naming.directory.DirContext;
-
- public class LDAP {
-
- private Hashtable env = null;
-
- private DirContext ctx = null;
-
- private boolean islogin = false;
-
- StringBuffer url;
-
- String host;
-
- String port;
-
- String admin;
-
- String password;
-
- String baseDN;
-
- public LDAP(String id, String pwd) {
- try {
- host = UMParas.getPara("hostname");
- port = UMParas.getPara("port");
- baseDN = UMParas.getPara("basedn");
- admin = UMParas.getPara("admin");
- password = UMParas.getPara("pwd");
- url = new StringBuffer("LDAP://");
- url.append(host).append(":").append(port);
- url.append("/").append(baseDN);
-
- } catch (Exception e) {
- e.printStackTrace();
- System.out.println("");
- }
-
- env = new Hashtable();
-
- env.put("java.naming.factory.initial",
- "com.sun.jndi.ldap.LdapCtxFactory");
- env.put("java.naming.provider.url", url.toString());
- env.put(Context.SECURITY_AUTHENTICATION, "simple");
-
- env.put("java.naming.security.principal", admin);
- env.put("java.naming.security.credentials", password);
- System.out.println("-------------");
- }
-
- public boolean checkAd() {
- try {
- System.out.println("-----ddd--------");
- InitialContext iCnt = new InitialContext(env);
- System.out.println("-------eee------");
- islogin = true;
- } catch (AuthenticationException aue) {
-
- islogin = false;
-
- } catch (NamingException e) {
-
- e.printStackTrace();
- } catch (Exception eee) {
- eee.printStackTrace();
-
- } finally {
- try {
- ctx.close();
- } catch (Exception ie) {
-
- }
- }
- return islogin;
- }
-
- public boolean userLogin(String userName, String password) {
- Hashtable envi = new Hashtable();
- try {
- envi.put("java.naming.factory.initial",
- "com.sun.jndi.ldap.LdapCtxFactory");
- envi.put("java.naming.provider.url", url.toString());
- envi.put(Context.SECURITY_AUTHENTICATION, "simple");
- envi.put("java.naming.security.principal", userName);
- envi.put("java.naming.security.credentials", password);
- InitialContext iCnt = new InitialContext(envi);
- return true;
- } catch (Exception e) {
-
- return false;
- } finally {
- try {
- ctx.close();
- } catch (Exception ie) {
-
- }
- }
- }
- }
UMParas.java 代码
- package ldap2;
-
- import java.io.*;
- import java.util.*;
- import org.jdom.*;
- import org.jdom.input.SAXBuilder;
-
- public class UMParas {
-
- private static HashMap prop;
-
- private static long lastLoadTime;
-
- private static long interval = 0x186a0L;
-
-
- public UMParas() {
- }
-
-
- public static synchronized String getPara(String paras)
- throws IllegalArgumentException {
- if (paras == null || paras.trim().length() == 0)
- throw new IllegalArgumentException("Parameter's value invalid.");
- long currentTime = System.currentTimeMillis();
- if (prop == null || currentTime - lastLoadTime > interval)
- reloadDom();
- Object obj = prop.get(paras);
- if (obj != null)
- return (String) obj;
- else
- return null;
- }
-
-
- private static synchronized void reloadDom() {
- if (prop == null)
- prop = new HashMap();
- SAXBuilder builder = new SAXBuilder();
- Document read_doc = null;
- try {
- read_doc = builder.build(UMParas.class
- .getResource("ldapconfig.xml"));
- } catch (FileNotFoundException e) {
- e.printStackTrace();
- } catch (JDOMException e) {
- e.printStackTrace();
- } catch (IOException e) {
- e.printStackTrace();
- }
- Element rootElement = read_doc.getRootElement();
- List list = rootElement.getChildren("para");
- for (Iterator i = list.iterator(); i.hasNext();) {
- Element current = (Element) i.next();
- List item = current.getChildren("item");
- Attribute code;
- Attribute value;
- for (Iterator j = item.iterator(); j.hasNext(); prop.put(code
- .getValue(), value.getValue())) {
- Element init = (Element) j.next();
- code = init.getAttribute("code");
- value = init.getAttribute("value");
- }
-
- }
- System.out.println("load sucess");
- lastLoadTime = System.currentTimeMillis();
- }
-
- public static void main(String args[]) {
- System.out.println(getPara("hostname"));
- }
-
- }
ldapconfig.xml 代码
- <?xml version="1.0" encoding="GBK"?>
- <sys_para>
- <para>
- <item code="hostname" value="192.168.1.106" description="LDAP服务器IP"/>
- <item code="port" value="10389" description="服务器端口"/>
- <item code="admin" value="uid=admin,ou=system" description="管理员帐号"/>
- <item code="pwd" value="secret" description="密码"/>
- <item code="basedn" value="ou=system" description="组织名(基准DN)"/>
- </para>
- </sys_para>
分享到:
相关推荐
Java 操作 LDAP(Lightweight Directory Access Protocol,轻量目录访问协议)的简单实例是 Java 语言中访问和操作 LDAP 服务器的基本示例。本示例展示了如何使用 Java 语言连接 LDAP 服务器,执行搜索操作,并获取...
其中,Java 6.0 API for LDAP 是一个基于 Java 的 LDAP 访问 API,提供了多种类和方法来连接和访问 LDAP 服务器。 在 Java 6.0 API for LDAP 中,javax.naming.directory 包提供了多种类和方法来连接和访问 LDAP ...
通过 JNDI,开发者可以使用 Java 语言来访问和操作 LDAP 服务器。 在本文中,我们将讨论 Java 语言如何使用 JNDI 对 LDAP 服务器进行增删改查等操作。我们将使用一个简单的示例程序来演示如何使用 JNDI 连接到 LDAP...
Java连接LDAP服务器是一种常见的任务,尤其在企业级应用中,用于身份验证、用户管理或访问控制。LDAP(轻量级目录访问协议)是一种基于X.500标准的目录服务协议,它允许快速查找和管理分布式数据库中的信息。在Java...
在Java中,我们可以使用JNDI(Java Naming and Directory Interface)来与LDAP服务器进行交互。JNDI提供了API,使得开发者能够查找、绑定和修改目录中的条目。 在Java中,使用LDAP进行用户验证通常涉及以下步骤: 1...
`LDAPTemplate`通过配置的方式降低了访问LDAP的复杂度,并且支持Spring框架的一系列特性,比如事务管理等。 ##### 2.2 配置与使用 - **环境准备**:首先需要确保项目中已经包含了Spring框架以及相关的依赖。对于`...
LDAP服务器用于存储组织结构、用户信息、权限等数据,而LDIF(LDAP数据交换格式)文件则是用于导入导出这些数据的一种标准文本格式。本文将深入探讨如何将LDIF文件导入到LDAP服务器中,包括必要的准备工作、操作命令...
#### 使用Java访问LDAP服务器 在Java中,可以通过JNDI(Java Naming and Directory Interface)API来访问LDAP服务器。JNDI提供了一套通用的接口,用于查找、注册以及管理命名和目录服务。 - **初始化上下文**:...
在本主题中,我们将详细探讨如何在CentOS操作系统上安装LDAP服务器,并利用Java编程语言来访问存储在LDAP中的数据。 首先,让我们详细了解一下在CentOS上安装和配置LDAP的过程: 1. **安装OpenLDAP**: 在CentOS...
在JAVA中,可以使用JNDI(Java Naming and Directory Interface)API来访问LDAP目录。JNDI提供了一个通用的API,允许JAVA应用程序访问各种类型的目录服务,包括LDAP。 使用LDAP进行用户认证的优点包括: 1. 可靠性...
LDAP(Lightweight Directory Access Protocol)是一种目录访问协议,允许客户端访问和操作目录服务。 LDAP 广泛应用于企业目录服务中,如 Active Directory、OpenLDAP 等。 Java 使用 LDAP 修改 AD 域用户密码 在...
在Java中,我们可以使用JNDI(Java Naming and Directory Interface)和特定的LDAP提供者(如Novell的jLDAP)来实现与LDAP服务器的交互。 在标题提及的"novell-jldap-devel-2013.08.30.1433-xplat"压缩包中,包含了...
在Java中,我们可以使用各种库来实现与LDAP服务器的交互,这些库提供了丰富的API,使得开发人员能够轻松地进行查询、添加、删除和修改目录记录。本篇将详细介绍Java与LDAP的集成以及相关知识点。 1. LDAP简介: ...
1. **JNDI(Java Naming and Directory Interface)**:Java连接LDAP的基础是JNDI,它为Java应用程序提供了一个统一的接口来访问不同的命名和目录服务,包括LDAP。JNDI允许开发者以一致的方式查找、绑定、更新和管理...
LDAP在Java环境中尤其重要,因为它允许Java应用程序与LDAP服务器进行交互,实现身份验证、授权以及数据检索等功能。 **Java LDAP库** 在Java中,我们可以使用Java LDAP API来与LDAP服务器通信。这个API包含在Java...
本案例将介绍如何使用Java编程语言操作LDAP服务器,实现用户登录验证等功能。 首先,我们需要了解Java中的JNDI(Java Naming and Directory Interface)框架,它是Java提供的一套标准API,用于与各种命名和目录服务...
在Java中,我们可以使用JNDI(Java Naming and Directory Interface)API来与LDAP服务器进行交互。 ### 1. JNDI简介 JNDI是Java平台的一个核心部分,它提供了一种统一的接口,用于访问各种命名和目录服务,包括LDAP...
一旦目录结构建立完毕,就可以通过JNDI API在Java应用程序中连接和访问这个LDAP服务器。JNDI是一个标准API,允许程序查找和使用各种命名和目录服务,包括LDAP。使用JNDI,我们可以编写Java代码来查找、添加、修改和...