`
laodaobazi
  • 浏览: 276913 次
  • 性别: 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类

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

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

    LDAP.rar_java ldap_ldap_ldap java

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

    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