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

LDAP搭建及其Java代码连接

    博客分类:
  • LDAP
阅读更多

OpenLDAP implementation of the Lightweight Directory Access Protocol.  http://www.openldap.org/

 

Windows 下安装 LDAP:

 

1、下载下面附件中的 openldap-2.2.29-db-4.3.29-openssl-0.9.8a-win32_Setup.rar 解压后安装,安装的时候一直点击“下一步”即可。

 

2、配置LDAP,假设我们安装到了“C:\Program Files\OpenLDAP”,在该目录中找到 slapd.conf 文件,修改文件内容。在 include  ./schema/core.schema 后面添加如下内容:

    include  ./schema/cosine.schema
    include  ./schema/inetorgperson.schema
    include  ./schema/corba.schema
    include  ./schema/dyngroup.schema
    include  ./schema/java.schema
    include  ./schema/misc.schema
    include  ./schema/nis.schema
    include  ./schema/openldap.schema

找到

suffix  "dc=my-domain,dc=com"
rootdn  "cn=Manager,dc=my-domain,dc=com"

 

将如上两行修改为

suffix "o=tcl,c=cn" 
rootdn "cn=Manager,o=tcl,c=cn"

下面的

rootpw        secret

是Manager的明文密码。

 

3、启动 OpenLDAP ,CMD切换到“C:\Program Files\OpenLDAP” 然后执行如下命令

slapd -d 1

 

4、建立新的条目

创建一个文本文件 item.ldif 其内容如下:

dn: o=tcl,c=cn
objectClass: dcObject
objectClass: organization
o: tcl
dc: com

dn: uid=Unmi, o=tcl,c=cn
uid: Unmi
objectClass: inetOrgPerson
mail: fantasia@sina.com
userPassword:: MTIzNDU2
labeledURI: http://unmi.blogcn.com
sn: Qiu
cn:: 6ZqU5Y+26buE6I66

执行命令:ldapadd -x -D "cn=manager,o=tcl,c=cn" -w secret -f item.ldif ,将内容导入到ldap中。

 

5、查看LDAP中的条目

下载下面附件 "LdapAdmin.rar" ,将其解压无需安装。配置连接信息:



 

 

连接成功之后,查看刚刚创建的条目:



 

 

6、Java读取条目

package com.neusoft.util;

import java.util.Hashtable;

import javax.naming.Context;
import javax.naming.NamingEnumeration;
import javax.naming.NamingException;
import javax.naming.directory.Attribute;
import javax.naming.directory.Attributes;
import javax.naming.directory.DirContext;
import javax.naming.directory.InitialDirContext;
import javax.naming.directory.SearchControls;
import javax.naming.directory.SearchResult;
        
public   class  LDAPTest {   
       public   static   void  main(String[] args) {   
        LDAPTest LDAPTest1 =  new  LDAPTest();   
        String root =  "o=tcl,c=cn" ;  //root   
        Hashtable env =  new  Hashtable();   
        env.put(Context.INITIAL_CONTEXT_FACTORY,  "com.sun.jndi.ldap.LdapCtxFactory" );   
        env.put(Context.PROVIDER_URL,  "ldap://localhost/"  + root);       
        env.put(Context.SECURITY_AUTHENTICATION,  "simple" );   
        env.put(Context.SECURITY_PRINCIPAL,  "cn=Manager,o=tcl,c=cn" );   
        env.put(Context.SECURITY_CREDENTIALS,  "secret" );   
        DirContext ctx =  null ;   
         try  {   
          ctx =  new  InitialDirContext(env);   
          System.out.println( "Ldap连接成功" );   
          SearchControls constraints = new SearchControls();
          constraints.setSearchScope(SearchControls.SUBTREE_SCOPE);
          NamingEnumeration en = ctx.search("", "(uid=Unmi)", constraints);
          while(en!=null && en.hasMoreElements()){
        	  Object obj = en.nextElement() ;
        	  if (obj instanceof SearchResult) {
				SearchResult result = (SearchResult) obj;
				result.getName();
				Attributes attrs = result.getAttributes();
				System.out.println(attrs.toString());
				Attribute attr = attrs.get("userPassword");
				String str = new String((byte[])attr.get());
				System.out.println(str);
			}
          }
        }   
         catch  (javax.naming.AuthenticationException e) {   
          e.printStackTrace();   
          System.out.println( "Ldap连接失败" );   
        }   
         catch  (Exception e) {   
          System.out.println( "认证出错:" );   
          e.printStackTrace();   
        }   
        
         if  (ctx !=  null ) {   
           try  {   
            ctx.close();   
          }   
           catch  (NamingException e) {   
             //ignore   
          }   
        }   
      }   
}  

 

  • 大小: 13.9 KB
  • 大小: 13.6 KB
0
0
分享到:
评论

相关推荐

    ldap搭建ldap搭建ldap搭建ldap搭建ldap搭建ldap搭建ldap搭建ldap搭建ldap搭建ldap搭建ldap

    ldap搭建

    java连接LDAP的jar包和实例

    下面是一个简单的使用jLDAP进行SSL连接并查询LDAP目录的Java代码示例: ```java import com.novell.ldap.*; public class LDAPSSLExample { public static void main(String[] args) { String ldapUrl = "ldaps:...

    java连接和验证ldap文档

    Java 连接和验证 LDAP 文档 Java 连接和验证 LDAP 文档是一份关于 Java 语言连接和验证 LDAP 服务器的学习文档。LDAP(Lightweight Directory Access Protocol)是一种目录访问协议,用于管理和访问目录服务中的...

    JAVA中使用LDAP进行用户认证

    下面是一个使用LDAP进行用户认证的JAVA代码示例: ```java import javax.naming.Context; import javax.naming.NamingException; import javax.naming.directory.DirContext; import javax.naming.directory....

    java对LDAP的增删改查

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

    java操作ldap类

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

    LDAP.rar_java ldap_ldap_ldap java

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

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

    最后,我们需要安装 JAVA 应用服务器,以便使用 Java 语言连接到 Active Directory 域控制器。 导出域根证书和计算机证书 在安装证书服务后,我们需要导出域根证书和计算机证书,以便使用 Java 语言连接到 Active ...

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

    8、在编写 Java 代码时,需要使用 Hashtable 对象来存储 LDAP 连接的参数,使用 Socket 对象来连接 LDAP 服务器,并使用 SSL/TLS 加密协议来确保密码修改的安全性。 9、在编写 Java 代码时,需要使用相关的 LDAP ...

    java LDAP操作

    Java LDAP操作同样适用于连接和操作OpenLDAP服务器。 ### 5. 示例代码 在`LDAPTest`文件中,你可能会找到一个完整的Java程序,演示了上述的各种操作。这个程序可能包含了连接LDAP服务器、搜索用户、修改用户信息等...

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

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

    LDAP搭建资料

    **LDAP搭建资料** LDAP(Lightweight Directory Access Protocol)是一种轻量级目录访问协议,用于管理和检索分布式目录服务中的数据。在IT行业中,LDAP被广泛应用于组织内部的身份验证、权限管理和数据共享,尤其...

    jndi.zip_java ldap_jndi_jndi ldap_ldap_ldap java

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

    LDAP_programming_With_Java.zip_java ldap_java ldap_java program

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

    java 操作ldap的简单实例

    本示例展示了如何使用 Java 语言连接 LDAP 服务器,执行搜索操作,并获取搜索结果。 一、LDAP 概述 LDAP 是一种目录访问协议,用于访问和管理分布式目录信息。LDAP 服务器可以存储大量的目录信息,例如用户信息、...

    java LDAP+CAS单点登录

    3. **代码文档**:提供了Java代码示例,说明如何在应用程序中集成CAS和LDAP。 4. **程序源码**:可能包括了一个示例项目,展示了完整的Java LDAP+CAS集成的实现。 5. **群组信息**:提供了一个讨论组的联系方式,供...

    LDAP Programming with Java

    ### LDAP编程与Java #### LDAP概述 LDAP(Lightweight Directory Access Protocol)是一种基于TCP/IP的应用层协议,用于访问和管理分布式目录服务。它最初由互联网工程任务组(IETF)设计,作为X.500目录访问协议...

    3.3.01_LDAP Java API 使用指南.doc

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

Global site tag (gtag.js) - Google Analytics