`
superallen
  • 浏览: 141556 次
  • 来自: ...
社区版块
存档分类

用JAVA实现LDAP的访问(二)

    博客分类:
  • ldap
阅读更多
 下面来具体的说一下怎么用JLDAP。首先要去下载一下JLDAP,具体下载的地址可以上网去搜。下载下来以后,lib里面的是开发所要用到的包,doc里面是帮助文档API和示例程序。
    先说说怎么查询,其实查询非常的简单,如果用过JDBC连数据库的话,那么连LDAP相比起来更加的简单。
    首先建立一个LDAPConnection对象。这个对象也可以通过连接池PoolManager来获得。LDAPConnection con = new LDAPConnection();然后运行connect方法和bind方法。连接上LDAP以后,就可以通过search方法来查找数据了。示例程序如下:
java 代码
  1. LDAPConnection lc = new LDAPConnection();   
  2.        try {   
  3.            lc.connect("6.1.19.154",389);   
  4.            lc.bind(LDAPConnection.LDAP_V3,"cn=xxx","xxxxxx");   
  5.            LDAPSearchResults rs = lc.search("dc=excel,dc=com,dc=cn",LDAPConnection.SCOPE_SUB,"objectClass=*",null,false);   
  6.            int count = 0;   
  7.            while(rs.hasMore()){   
  8.                LDAPEntry entry = rs.next();   
  9.                System.out.println(entry.getDN());   
  10.                count++;   
  11.            }   
  12.            System.out.println("共有"+count+"条记录。");   
  13.        } catch (LDAPException e) {   
  14.              
  15.            System.err.print("连接异常!   ");   
  16.            e.printStackTrace();   
  17.        }  
分享到:
评论
5 楼 Hejrcc 2007-06-14  
我觉得自己发表的帖子, 要是可以修改就好了。

4 楼 Hejrcc 2007-06-14  
看见还有一种写法用来获取 DirContext, 下面的写法指定了 INITIAL_CONTEXT_FACTORY属性,我想知道我前面一种写法里面, env.put(Context.INITIAL_CONTEXT_FACTORY, ?);
这个INITIAL_CONTEXT_FACTORY 我没有设置, 不知道默认是什么?

 Hashtable<String, String> env = new Hashtable<String, String>();
 env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
 env.put(Context.PROVIDER_URL, "ldap://localhost:389");
 env.put(Context.SECURITY_PRINCIPAL, "cn=Manager,dc=mycompany,dc=com");
 env.put(Context.SECURITY_CREDENTIALS, "secret");
 //env.put(Context.SECURITY_AUTHENTICATION, "simple"); //"none", "simple", "strong"         
 DirContext context = new InitialDirContext(env);
3 楼 Hejrcc 2007-06-14  
看不出用JLDAP有什么优势, 我也刚刚开始学。
我写了个测试例子,请指点:

public void testLdap() {
    try {
        DirContext context = getContext();
        addEntry(context, "uid=oracle,ou=people,dc=mycompany,dc=com");
        printEntry(context, "uid=oracle,ou=people,dc=mycompany,dc=com");
        context.close();
    } catch (AuthenticationException e) {
        e.printStackTrace();
    } catch (NamingException e) {
        e.printStackTrace();
    }
}

public DirContext getContext() throws NamingException {
    Hashtable<String, String> env = new Hashtable<String, String>();
    env.put(Context.SECURITY_PRINCIPAL, "cn=Manager,dc=mycompany,dc=com");
    env.put(Context.SECURITY_CREDENTIALS, "secret");
    env.put(Context.SECURITY_AUTHENTICATION, "simple"); //"none", "simple", "strong"

    DirContext initial = new InitialDirContext(env);
    DirContext context = (DirContext) initial.lookup("ldap://localhost:389");
    return context;
}

public void addEntry(DirContext context, String dn) throws NamingException {
    Attributes attrs = new BasicAttributes();
    attrs.put("uid", "oracle");
    attrs.put("sn", "Lee");
    attrs.put("cn", "Amy Lee");
    attrs.put("telephoneNumber", "+1 408 555 0033");
    attrs.put("userPassword", "redqueen".getBytes());
    //the following attribute has two values
    Attribute objclass = new BasicAttribute("objectClass");
    objclass.add("uidObject");
    objclass.add("person");
    attrs.put(objclass);

    context.createSubcontext(dn, attrs);
}
2 楼 Hejrcc 2007-06-14  
呵呵, 就是。。。
1 楼 Dustbin 2007-03-30  
这样的程序会导致ldap服务器死机地,需要关闭ldap连接

相关推荐

    用JAVA实现LDAP的访问.txt

    ### 使用Java实现LDAP访问 #### 一、简介 在企业级应用开发中,LDAP(Lightweight Directory Access Protocol,轻量目录访问协议)是一种常见的用于管理组织机构中的用户账户信息的标准协议。通过LDAP,开发者可以...

    JAVA中使用LDAP进行用户认证

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

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

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

    java 操作ldap的简单实例

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

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

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

    java对LDAP的增删改查

    在 Java 中,开发者可以使用 JNDI 的 LDAP 实现来连接 LDAP 服务器,并执行各种操作。JNDI 提供了一个统一的接口来访问不同的目录服务,包括 LDAP、DNS、NIS 等。通过 JNDI,开发者可以使用 Java 语言来访问和操作 ...

    java连接和验证ldap文档

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

    java连接LDAP的jar包和实例

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

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

    ### JAVA中使用LDAP进行用户认证的关键知识点 #### LDAP简介与特性 LDAP,即轻量级目录访问协议(Lightweight Directory Access Protocol),源自X.500标准,但更简化且可定制。它支持TCP/IP协议,是互联网环境下...

    使用Java操作LDAP案例

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

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

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

    java操作LDAP的架包

    在Java中,我们可以使用各种库来实现与LDAP服务器的交互,这些库提供了丰富的API,使得开发人员能够轻松地进行查询、添加、删除和修改目录记录。本篇将详细介绍Java与LDAP的集成以及相关知识点。 1. LDAP简介: ...

    java连接ldap所需jar包

    1. **JNDI(Java Naming and Directory Interface)**:Java连接LDAP的基础是JNDI,它为Java应用程序提供了一个统一的接口来访问不同的命名和目录服务,包括LDAP。JNDI允许开发者以一致的方式查找、绑定、更新和管理...

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

    在本文中,我们将深入探讨如何使用Java通过Ldap与Active Directory (AD)域进行交互。首先,我们需要了解AD域是一个集中式服务,用于管理网络中的用户、计算机和其他资源的身份和权限。Ldap(轻量级目录访问协议)是...

    java LDAP+CAS单点登录

    在Java中,可以使用JNDI(Java Naming and Directory Interface)API来与LDAP服务器进行交互。 **CAS(Central Authentication Service)** CAS是一个开源的身份验证框架,由耶鲁大学开发,主要用于实现单点登录...

    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开发者在处理目录服务时常见的任务,尤其在需要进行身份验证、用户管理或企业应用集成时。LDAP是一种开放标准的网络协议,用于存储和检索分布式目录信息。在Java中,我们...

    ldap 访问AD测试

    5. Java LDAP库:"java ldap 访问 Active Directory.txt"和"Java访问AD.txt"讨论的是使用Java的JNDI(Java Naming and Directory Interface)库来与AD通信。Java程序员可以利用JNDI API创建连接、执行查询、修改目录...

    java 连接ldap 服务器源码

    在Java中,我们可以使用JNDI(Java Naming and Directory Interface)来实现与LDAP服务器的交互。 首先,我们需要理解JNDI的基本概念。JNDI是Java平台的一个API,它提供了一种统一的方式来查找和管理命名和目录服务...

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

    LDAP(Lightweight Directory Access Protocol)是一种轻量级目录访问协议,用于访问和更新目录信息。Active Directory 是 Windows 操作系统中的目录服务,提供了身份验证、授权和资源管理等功能。LDAP 可以与 ...

Global site tag (gtag.js) - Google Analytics