`
nxw_tsp
  • 浏览: 18527 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

通过java实现对Ldap的增删改操作

 
阅读更多
  1. 增加操作
package com.nxw.test;

import java.io.UnsupportedEncodingException;
import java.util.Enumeration;
import java.util.Iterator;

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;
import com.novell.ldap.LDAPSearchResults;
import com.novell.ldap.util.Base64;

    /**
     * 
     *@author nxw
     * 
     *
     */
    public class LDAPSearchDemo {

        public static void main(String[] args) {

            String ldapHost = "localhost";
            String loginDN = "cn=Manager,dc=nxw,dc=com";
            String password = "secret";
            String searchBase = "dc=nxw,dc=com";
            String searchFilter = "objectClass=*";

            int ldapPort = LDAPConnection.DEFAULT_PORT;
            // 查询范围
            // SCOPE_BASE、SCOPE_ONE、SCOPE_SUB、SCOPE_SUBORDINATESUBTREE
            int searchScope = LDAPConnection.SCOPE_SUB;

            LDAPConnection lc = new LDAPConnection();
            try {
                lc.connect(ldapHost, ldapPort);
                lc.bind(LDAPConnection.LDAP_V3, loginDN, password.getBytes("UTF8"));
                LDAPSearchResults searchResults = lc.search(searchBase,
                        searchScope, searchFilter, null, false);

                while (searchResults.hasMore()) {
                    LDAPEntry nextEntry = null;
                    try {
                        nextEntry = searchResults.next();
                    } catch (LDAPException e) {
                        System.out.println("Error: " + e.toString());
                        if (e.getResultCode() == LDAPException.LDAP_TIMEOUT
                                || e.getResultCode() == LDAPException.CONNECT_ERROR) {
                            break;
                        } else {
                            continue;
                        }
                    }
                    System.out.println("DN =: " + nextEntry.getDN());
                    System.out.println("|---- Attributes list: ");
                    LDAPAttributeSet attributeSet = nextEntry.getAttributeSet();
                    Iterator<LDAPAttribute> allAttributes = attributeSet.iterator();
                    while (allAttributes.hasNext()) {
                        LDAPAttribute attribute = allAttributes.next();
                        String attributeName = attribute.getName();

                        Enumeration<String> allValues = attribute.getStringValues();
                        if (null == allValues) {
                            continue;
                        }
                        while (allValues.hasMoreElements()) {
                            String value = allValues.nextElement();
                            if (!Base64.isLDIFSafe(value)) {
                                // base64 encode and then print out
                                value = Base64.encode(value.getBytes());
                            }
                            System.out.println("|---- ---- " + attributeName
                                    + " = " + value);
                        }
                    }
                }

            } catch (LDAPException e) {
                System.out.println("Error: " + e.toString());
            } catch (UnsupportedEncodingException e) {
                System.out.println("Error: " + e.toString());
            } finally {
                try {
                    if (lc.isConnected()) {
                        lc.disconnect();
                    }
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        }
    }
  1. 删除操作
package com.nxw.test;

import java.io.UnsupportedEncodingException;
import com.novell.ldap.LDAPConnection;
import com.novell.ldap.LDAPException;

    /**
     * 删除条目的示例
     * 
     *@author nxw
     * 
     *
     */
    public class LDAPDeleteEntry {

        /**
         * @param args
         */
        public static void main(String[] args) {

            String ldapHost = "localhost";
            String loginDN = "cn=Manager,dc=voole,dc=com";
            String password = "secret";
            String deleteDN = "ou=nxw,dc=voole,dc=com";

            int ldapPort = LDAPConnection.DEFAULT_PORT;
            int ldapVersion = LDAPConnection.LDAP_V3;
            LDAPConnection lc = new LDAPConnection();
            try {
                lc.connect(ldapHost, ldapPort);
                lc.bind(ldapVersion, loginDN, password.getBytes("UTF8"));

                lc.delete(deleteDN);
                System.out.println(" delete Entry: " + deleteDN + " success.");
                lc.disconnect();
            } catch (LDAPException e) {
                if (e.getResultCode() == LDAPException.NO_SUCH_OBJECT) {
                    System.err.println("Error: No such object");
                } else if (e.getResultCode() == LDAPException.INSUFFICIENT_ACCESS_RIGHTS) {
                    System.err.println("Error: Insufficient rights");
                } else {
                    System.err.println("Error: " + e.toString());
                }
            } catch (UnsupportedEncodingException e) {
                System.out.println("Error: " + e.toString());
            } finally {
                try {
                    if (lc.isConnected()) {
                        lc.disconnect();
                    }
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }

        }

    }
  1. 修改操作
package com.nxw.test;

import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

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

    /**
     * 修改操作示例
     * 
     * @author nxw
     *
     *
     */
    public class LDAPModifyAttrs {

        /**
         * @param args
         */
        public static void main(String[] args) {

            String ldapHost = "localhost";
            String loginDN = "cn=Manager,dc=voole,dc=com";
            String password = "secret";
            String modifyDN = "ou=nxw,dc=voole,dc=com";

            int ldapPort = LDAPConnection.DEFAULT_PORT;
            int ldapVersion = LDAPConnection.LDAP_V3;
            LDAPConnection lc = new LDAPConnection();

            List<LDAPModification> modList = new ArrayList<LDAPModification>();

            // 向描述属性中添加一个新值
            String desc = "This object was modified at " + new Date();
            LDAPAttribute attribute = new LDAPAttribute("description", desc);
            modList.add(new LDAPModification(LDAPModification.ADD, attribute));

            attribute = new LDAPAttribute("telephoneNumber", "8888866666");
            modList.add(new LDAPModification(LDAPModification.ADD, attribute));

            // 用新值替换labeleduri地址
            attribute = new LDAPAttribute("labeledURI", "nxwtsp@163.com");
            modList.add(new LDAPModification(LDAPModification.REPLACE, attribute));

            // 删除email属性
            attribute = new LDAPAttribute("mail");
            modList.add(new LDAPModification(LDAPModification.DELETE, attribute));

            LDAPModification[] mods = new LDAPModification[modList.size()];
            mods = (LDAPModification[]) modList.toArray(mods);

            try {
                lc.connect(ldapHost, ldapPort);
                lc.bind(ldapVersion, loginDN, password.getBytes("UTF8"));
                lc.modify(modifyDN, mods);
                System.out
                        .println("LDAPAttribute add、replace、delete all successful.");
            } catch (LDAPException e) {
                e.printStackTrace();
            } catch (UnsupportedEncodingException e) {
                System.out.println("Error: " + e.toString());
            } finally {
                try {
                    if (lc.isConnected()) {
                        lc.disconnect();
                    }
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }

        }

    }

java连接Ldap http://blog.csdn.net/nxw_tsp/article/details/52678976

所需jar包 http://download.csdn.net/detail/nxw_tsp/9642131

本博文引自 http://blog.csdn.net/robbin2118/article/details/42092385

<script type="text/javascript"> $(function () { $('pre.prettyprint code').each(function () { var lines = $(this).text().split('\n').length; var $numbering = $('<ul/>').addClass('pre-numbering').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i <= lines; i++) { $numbering.append($('<li/>').text(i)); }; $numbering.fadeIn(1700); }); }); </script>
分享到:
评论

相关推荐

    java对LDAP的增删改查

    Java 语言通过 JNDI 提供的 LDAP 实现,可以实现在 LDAP 服务器上进行增删改查等操作。 在 Java 中,开发者可以使用 JNDI 的 LDAP 实现来连接 LDAP 服务器,并执行各种操作。JNDI 提供了一个统一的接口来访问不同的...

    JAVA中使用LDAP进行用户认证

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

    java 操作ldap的简单实例

    Java 语言可以通过 JNI(Java Native Interface,Java 本地接口)或纯 Java 实现来访问和操作 LDAP 服务器。 二、Java 访问 LDAP 服务器 在 Java 中,访问 LDAP 服务器需要使用 javax.naming 和 javax.naming.ldap...

    LDAP增、删、改、查操作

    本文将对LDAP的增、删、改、查操作进行详细说明,并提供相应的Java代码实现。 LDAP验证 LDAP验证是指使用LDAP协议来验证用户的身份,确保用户的身份信息正确无误。LDAP验证流程如下: 1. 客户端向LDAP服务器发送...

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

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

    java Ldap增删改查测试代码

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

    java操作ldap类

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

    对LDAP的基本操作(Spring-ldap)+Ext实现显示LDAP的树状结构

    rar包:一个Web工程, 主要有,利用Spring-ldap对LDAP的基本操作(查询,增删改);Extjs实现的对Ldap的树状结构的显示,结构有点类似Softerra LDAP;一个测试类。 pdf:spring-ldap-reference.pdf Extjs.pdf ...

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

    LDAP(Lightweight Directory Access Protocol)是一种目录访问协议,允许客户端访问和操作目录服务。 LDAP 广泛应用于企业目录服务中,如 Active Directory、OpenLDAP 等。 Java 使用 LDAP 修改 AD 域用户密码 在...

    java连接LDAP的jar包和实例

    这个主题涉及几个关键知识点,包括Java LDAP API、SSL安全连接以及如何通过代码操作LDAP目录。 首先,LDAP是一个开放标准的协议,用于存储和检索用户、组、计算机等对象的数据。这些数据通常分布在多台服务器上,...

    JAVA中使用LDAP进行用户认证.pdf

    通过上述分析,我们可以看出,在JAVA中使用LDAP进行用户认证涉及多个层面的技术,包括网络通信、安全协议、目录服务以及JAVA编程。掌握这些技术对于构建高效、安全的企业级应用至关重要。此外,理解LDAP的工作原理...

    java连接和验证ldap文档

    Java 连接和验证 LDAP 文档 Java 连接和验证 LDAP 文档是一份关于 Java 语言连接和验证 LDAP 服务器的学习...通过使用 Java 6.0 API for LDAP,可以轻松地连接和访问 LDAP 服务器,实现目录服务中的数据访问和管理。

    JAVA使用Ldap操作AD域的方法示例

    总的来说,Java通过Ldap操作AD域涉及网络连接、身份验证、目录查询以及可能的SSL安全通信。理解这些概念和API的使用是实现AD域集成的关键。通过以上介绍和示例代码,你应该能够开始编写自己的AD域操作功能。记得在...

    用JAVA实现LDAP的访问.txt

    本文将详细介绍如何使用Java来实现对LDAP的访问,主要探讨两种方式:使用`LDAPTemplate`和使用`JLDAP`。 #### 二、使用LDAPTemplate访问LDAP ##### 2.1 LDAPTemplate介绍 `LDAPTemplate`是Spring框架中提供的一种...

    使用Java操作LDAP案例

    本案例将介绍如何使用Java编程语言操作LDAP服务器,实现用户登录验证等功能。 首先,我们需要了解Java中的JNDI(Java Naming and Directory Interface)框架,它是Java提供的一套标准API,用于与各种命名和目录服务...

    java测试LDAP协议

    采用java 实现LDAP协议的创建用户和查询用户,也就是WIndows AD域控的操作。

    java操作LDAP的架包

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

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

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

    LDAP.rar_java ldap_ldap_ldap java

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

    java实现对ladp增 删 改 查操作,以及如何按目录遍历节点

    java实现对ladp增 删 改 查操作,以及如何按目录遍历节点,其中有一点设计业务的代码,但是不影响对ladp操作的代码,代码很干净

Global site tag (gtag.js) - Google Analytics