`
yuanyannan
  • 浏览: 30775 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

java ldap

阅读更多
Ldap
采用的是novell 的API。
参考代码如下:
创建连接LDAP的类:Ldap_Connection
package ldap1;

import com.novell.ldap.LDAPConnection;
import com.novell.ldap.LDAPException;

public  class Ldap_Connection {
@SuppressWarnings("deprecation")
public static LDAPConnection getLdapConnection(){
LDAPConnection lc = new LDAPConnection();   
       try {   
           lc.connect("192.168.1.13",9389);               lc.bind(LDAPConnection.LDAP_V3,"cn=li,ou=People,dc=gsoft,dc=com","newpassword"); 
           System.out.println("连接成功!");
           return lc ;
       } catch (LDAPException e) {   
           System.err.print("连接异常!   ");   
           e.printStackTrace();   
       }
return null;  
}
}
创建添加类:Ldap_Add
package ldap1;

import com.novell.ldap.LDAPAttribute;
import com.novell.ldap.LDAPAttributeSet;
import com.novell.ldap.LDAPConnection;
import com.novell.ldap.LDAPEntry;
import com.novell.ldap.LDAPException;

public class Ldap_Add {
public static void LDAP_add(LDAPConnection ldapConnection) throws LDAPException{
LDAPAttributeSet attributeSet = new LDAPAttributeSet();   
       attributeSet.add(new LDAPAttribute("objectclass", new String(   
               "inetOrgPerson")));   
       attributeSet.add(new LDAPAttribute("cn", new String[] { "li",   
               "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=li,ou=People,dc=gsoft,dc=com",   
               attributeSet);
       ldapConnection.add(entry);   
       System.out.println("成功的添加了一条记录!");   
       ldapConnection.disconnect();  
}
}

创建删除类:Ldap_Delete
package ldap1;

import com.novell.ldap.LDAPConnection;
import com.novell.ldap.LDAPException;

public class Ldap_Delete {
public static void LDAP_Delete(LDAPConnection lc) throws LDAPException{
LDAPConnection lConnection = Ldap_Connection.getLdapConnection() ;
lConnection.delete("cn=李,ou=People,dc=gsoft,dc=com") ;
lConnection.disconnect() ;
System.out.println("删除一条记录");
}
}

创建查询类:Ldap_Seach
package ldap1;

import java.util.Iterator;
import com.novell.ldap.LDAPAttribute;
import com.novell.ldap.LDAPConnection;
import com.novell.ldap.LDAPEntry;
import com.novell.ldap.LDAPException;
import com.novell.ldap.LDAPSearchResults;
/**
* LDAPConnection.SCOPE_ONE  // 只查找基节点第一层的子节点
* LDAPConnection.SCOPE_BASE // 只查找基节点
* LDAPConnection.SCOPE_SUB  // 查找基节点下面的所有子节点
**/

public class Ldap_Search {
public static void LDAP_Search(LDAPConnection lc) throws LDAPException{
LDAPSearchResults rs = lc.search("dc=gsoft,dc=com",LDAPConnection.SCOPE_SUB,"objectClass=*",null,false);   
int count = 0;   
         while(rs.hasMore()){   
             LDAPEntry entry = rs.next();   
             System.out.println(entry.getDN());   
             count++;   
         }   
         lc.disconnect() ;
         System.out.println("共有"+count+"条记录。");  
         lc.disconnect();
}
/**
* 遍历该用户下的所有属性和属性值
* **/
public static void Ldap_Search2(LDAPConnection lc) throws LDAPException{
//http://hi.baidu.com/maimouse/blog/item/5862142c746249e88b139910.html
//http://blog.csdn.net/ZhuYujie/archive/2008/07/21/2685366.aspx
LDAPSearchResults rs = lc.search("cn=li,ou=People,dc=gsoft,dc=com",LDAPConnection.SCOPE_SUB,"objectClass=*",null,false);   
int count = 0;  
Iterator iterator = null ;
LDAPEntry entry ;
        while(rs.hasMore()){   
             entry = rs.next();   
//            System.out.println(entry.getDN());   
           LDAPAttributeSet  lAttributeSet =  entry.getAttributeSet();
            iterator = (Iterator) lAttributeSet.iterator();
            while(iterator.hasNext()){
            LDAPAttribute Attribute =(LDAPAttribute) iterator.next() ;
            System.out.println("name="+Attribute.getName());
            System.out.println("vale="+Attribute.getStringValue());
            count++;
            }
              
        }   
        lc.disconnect() ;
        System.out.println("共有"+count+"条记录。");  
        lc.disconnect();
}
}

创建修改类:Ldap_Search
package ldap1;

import java.util.ArrayList;

import com.novell.ldap.LDAPAttribute;
import com.novell.ldap.LDAPConnection;
import com.novell.ldap.LDAPException;
import com.novell.ldap.LDAPModification;

public class Ldap_Update {
public static void LDAP_Upate(LDAPConnection lc) throws LDAPException{
ArrayList<LDAPModification> modList = new ArrayList<LDAPModification>();
LDAPAttribute attribute = new LDAPAttribute("mail", "JSmith@yyn.com");
modList.add(new LDAPModification(LDAPModification.REPLACE, attribute));
//       attribute  = new LDAPAttribute("givenName","修改") ;
//       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连接就行修改操作
      String dn = "cn=li,ou=People,dc=gsoft,dc=com" ;
      lc.modify(dn, modsadd);    
      lc.disconnect() ;
}
}
创建测试类:Ldap_Main
package ldap1.main;

import ldap1.Ldap_Add;
import ldap1.Ldap_Connection;
import ldap1.Ldap_Delete;
import ldap1.Ldap_Search;
import ldap1.Ldap_Update;

import com.novell.ldap.LDAPConnection;
//http://blog.csdn.net/TechChan/archive/2010/04/13/5482170.aspx
public class Ldap_Main {
public static void main(String[] args) {
LDAPConnection ldapConnection = Ldap_Connection.getLdapConnection() ;
try {
Ldap_Delete.LDAP_Delete(ldapConnection);
Ldap_Add.LDAP_add(ldapConnection) ;
Ldap_Search.LDAP_Search(ldapConnection) ;
Ldap_Update.LDAP_Upate(ldapConnection) ;
} catch (Exception e) {
e.printStackTrace();
}

}
}

以上几个简单的功能,能够完成对Ldap的连接,添加、删除、更新、查询的简单操作。
分享到:
评论

相关推荐

    JAVA ldap AD 域 免证书 查询 修改 删除 新增 启用 禁用 修改密码

    在这篇文章中,我们将探讨使用 JAVA 实现 LDAP 的 AD 域免证书查询、修改、删除、新增、启用、禁用和修改密码的操作。 首先,让我们了解什么是 LDAP 和 AD 域。LDAP(Lightweight Directory Access Protocol)是一...

    java LDAP操作

    Java LDAP(轻量级目录访问协议)操作是Java开发者在处理目录服务时常见的任务,尤其在需要进行身份验证、用户管理或企业应用集成时。LDAP是一种开放标准的网络协议,用于存储和检索分布式目录信息。在Java中,我们...

    java LDAP+CAS单点登录

    Java LDAP+CAS单点登录是一种常见的企业级身份验证和授权解决方案。这个技术组合允许用户只需登录一次,就可以访问多个相互独立的应用系统,提高了用户体验并增强了安全性。以下是对这个主题的详细解释: **LDAP...

    LDAP.rar_java ldap_ldap_ldap java

    LDAP在Java环境中尤其重要,因为它允许Java应用程序与LDAP服务器进行交互,实现身份验证、授权以及数据检索等功能。 **Java LDAP库** 在Java中,我们可以使用Java LDAP API来与LDAP服务器通信。这个API包含在Java...

    JAVA LDAP

    Java LDAP 操作详解 在Java开发中,有时我们需要与 Lightweight Directory Access Protocol (LDAP) 进行交互,以管理和检索分布式目录服务中的数据。LDAP是一种开放标准的网络协议,用于存储和检索用户、组织、资源...

    java连接LDAP的jar包和实例

    Java连接LDAP(Lightweight Directory Access Protocol)是一种常见的任务,用于在分布式环境中管理和访问目录服务信息。这个主题涉及几个关键知识点,包括Java LDAP API、SSL安全连接以及如何通过代码操作LDAP目录...

    JAVA中使用LDAP进行用户认证

    JAVA中使用LDAP进行用户认证 JAVA中使用LDAP进行用户认证是指在JAVA应用程序中使用轻量级目录访问协议(LDAP)来进行用户身份验证。LDAP是一种基于X.500标准的目录访问协议,但它更简单、更灵活,可以根据需要进行...

    Java LDAP Server-开源

    Java LDAP Server是一个基于Java开发的开源项目,其主要目的是实现一个符合Lightweight Directory Access Protocol (LDAP) v3标准的目录服务器。LDAP是一种网络协议,用于访问和管理分布式身份信息,常用于企业级...

    java对LDAP的增删改查

    Java 对 LDAP 的增删改查 Java 语言通过 JNDI(Java Naming and Directory Interface)提供了对 LDAP(Lightweight Directory Access Protocol)的支持,允许开发者通过 Java 语言来操作 LDAP 服务器。LDAP 是一种...

    java Ldap增删改查测试代码

    java Ldap增删改查代码。ldap样例数据,可用来导入。

    [原创] CentOS7 下 OpenLDAP Server 安装和配置及使用 phpLDAPadmin 和 Java LDAP 访问 LDAP Server

    本文将深入探讨如何在CentOS7操作系统上安装和配置OpenLDAP服务器,以及如何利用phpLDAPadmin进行图形化管理,并通过Java LDAP API与LDAP服务器交互。 首先,我们来了解OpenLDAP。OpenLDAP是一个实现LDAP协议的开源...

    3.3.01_LDAP Java API 使用指南.doc

    在Java中,可以使用Java LDAP API来与LDAP服务器进行交互,执行查询、添加、删除、修改等操作。本指南将详细介绍如何使用Java LDAP API。 ### 1. LDAP简介 LDAP目录服务是一种存储组织数据的方式,它不同于传统的...

    java使用ldap修改ad域用户密码

    Java 使用 LDAP 修改 AD 域用户密码 本文将详细介绍如何使用 Java 语言通过 LDAP 协议修改 Windows Active Directory 域用户的密码。同时,本文也将对相关概念进行解释,以便读者更好地理解整个过程。 LDAP 概念 ...

    java 操作ldap的简单实例

    Java 操作 LDAP 的简单实例 Java 操作 LDAP(Lightweight Directory Access Protocol,轻量目录访问协议)的简单实例是 Java 语言中访问和操作 LDAP 服务器的基本示例。本示例展示了如何使用 Java 语言连接 LDAP ...

    LDAP_programming_With_Java.zip_java ldap_java ldap_java program

    《LDAP编程与Java》这本书是关于使用Java进行 Lightweight Directory Access Protocol (LDAP) 开发的指南。LDAP是一种开放标准的网络协议,用于访问和管理分布式目录服务。它在企业级应用中广泛使用,如用户身份验证...

    java操作ldap类

    java操作ldap类java操作ldap类java操作ldap类

    JAVA通过LDAP+SSL(证书)实现用户和组织(部门)增删改查.zip

    本文将深入探讨如何使用Java通过LDAP(轻量级目录访问协议)和SSL(安全套接层)来实现用户和组织(部门)的增删改查操作,并结合证书确保通信的安全性。这些功能通常用于大型企业的用户管理,例如Active Directory...

    jndi.zip_java ldap_jndi_jndi ldap_ldap_ldap java

    通过JNDI,Java开发者可以方便地与LDAP服务器进行交互,实现诸如连接、添加、删除、修改和搜索等操作。 1. **JNDI基础** JNDI是一个接口,提供了一种统一的方式来查找和管理各种命名和目录服务,包括 LDAP、DNS、...

    java操作LDAP的架包

    Java操作LDAP(Lightweight Directory Access Protocol)是一种常见的方式,用于在分布式环境中管理和访问目录信息。在Java中,我们可以使用各种库来实现与LDAP服务器的交互,这些库提供了丰富的API,使得开发人员...

    JXplorer - A Java Ldap Browser:具有i18n支持的成熟的LDAP,LDIF和DSML客户端。-开源

    具有LDIF支持,安全性(包括SSL,SASL和GSSAPI),翻译成多种语言(包括中文),在线帮助,用户表单和许多其他功能的Java LDAP客户端。 商业版本可在https://jxworkbench.com上以9.95美元的价格购买。 它扩展了...

Global site tag (gtag.js) - Google Analytics