`

LDAP之二:Java 对 LDAP数据库的访问(转载)

    博客分类:
  • ldap
阅读更多
package com.geong.cscb.eai;

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.SearchControls;
import javax.naming.directory.SearchResult;
import javax.naming.ldap.InitialLdapContext;
import javax.naming.ldap.LdapContext;



public class LDAP{
public static void main(String[] args){

    System.out.println(getPassword("abc@test.com"));
    }
    
    
public static String getPassword(String user){
String password="";   
Attribute pass=null;
String domain=user.split("@")[1];
//System.out.println(domain);
String tmp[]=domain.split("\\.");
StringBuffer dn1=new StringBuffer(""); //通过用户名,解析根后缀.

for(int i=0;i<tmp.length;i++) 
   { if (i!=0) dn1.append(",");
       dn1=dn1.append("dc="+tmp[i]);
     }    
String dn=dn1.toString();

     
try{    
    Hashtable env = new Hashtable();
    env.put(Context.PROVIDER_URL,"ldap://192.168.1.50:389");
    env.put(Context.SECURITY_AUTHENTICATION, "simple");
    env.put(Context.SECURITY_PRINCIPAL, "cn=root"); //用户名
    env.put(Context.SECURITY_CREDENTIALS, "111"); //密码
    env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
    LdapContext ctx = new InitialLdapContext(env, null);
     SearchControls constraints = new SearchControls();
    constraints.setSearchScope(SearchControls.SUBTREE_SCOPE);
    NamingEnumeration results = ctx.search(dn,"(mail="+user+")",constraints); 
            
while (results != null && results.hasMore()){
SearchResult sr = (SearchResult) results.next();
Attributes attributes = sr.getAttributes();
     pass = attributes.get("Password");
}
}catch(Exception e){
    e.getStackTrace();
    }
password=pass.toString();
return password;     
}

}
分享到:
评论

相关推荐

    CentOS上安装LDAP,Java访问LDAP数据。

    安装完成后,需要创建一个基本的LDAP数据库配置: ``` sudo /usr/bin/slaptest -f /etc/openldap/slapd.conf -F /etc/openldap/slapd.d sudo systemctl start slapd sudo systemctl enable slapd ``` 3. **...

    LDAP.rar_java ldap_ldap_ldap java

    4. **初始化数据库**:使用特定工具创建和初始化LDAP数据库。 5. **启动与测试**:启动SUN LDAP服务器,并使用`ldapsearch`或Java LDAP API进行测试查询,确保服务器工作正常。 6. **安全管理**:配置访问控制策略,...

    LDAP搭建及其Java代码连接

    1. **JNDI(Java Naming and Directory Interface)**:是Java中用于访问命名和目录服务的API,包括与LDAP的交互。 2. **连接配置**:通过`InitialDirContext`实例化,提供URL(如`ldap://localhost:389`)和凭据。...

    JNDI访问LDAP

    **JNDI(Java Naming and Directory Interface)**是Java平台中的一个标准API,它允许Java应用程序访问各种命名和目录服务,如LDAP(Lightweight Directory Access Protocol)。在Java应用中,JNDI通常用于管理和...

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

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

    3.3.01_LDAP Java API 使用指南.doc

    **LDAP(Lightweight Directory Access Protocol)**是一种轻量级目录访问协议,用于访问和管理分布式目录服务。在Java中,可以使用Java LDAP API来与LDAP服务器进行交互,执行查询、添加、删除、修改等操作。本指南...

    LDAP_Java_API_使用指南.rar

    **LDAP (轻量级目录访问协议) 是一种用于存储和检索目录信息的标准协议,它以树形结构组织数据。...记住,实践是检验理解的最好方式,尝试编写并运行上述代码,以加深对LDAP与Java结合运用的理解。

    IBM LDAP一些基础知识

    IBM LDAP(Lightweight Directory Access Protocol)是IBM提供的一种基于X.500标准的轻量级目录访问协议,用于在分布式环境中存储和检索用户信息、配置数据和其他对象。本篇文章将深入探讨IBM LDAP的基础知识,并...

    java 连接ldap 服务器源码

    LDAP(轻量级目录访问协议)是一种基于X.500标准的目录服务协议,它允许快速查找和管理分布式数据库中的信息。在Java中,我们可以使用JNDI(Java Naming and Directory Interface)来实现与LDAP服务器的交互。 首先...

    LDAP java 操作

    通过JNDI与Java结合,开发者可以轻松地实现对IBM Directory Server LDAP v3的访问和管理。理解基本的LDAP概念、配置连接、执行操作以及错误处理是成功实现这一目标的关键步骤。不断探索和实践,可以进一步提升在Java...

    有关ldap包的下载和oracle连接数据库oracle9i的包

    要使用这些文件,你需要在Java环境中配置正确的环境变量,并确保你的应用程序拥有足够的权限来访问Oracle数据库和LDAP服务器。在编写代码时,可以使用JDBC的`DriverManager.getConnection()`方法来建立与Oracle...

    LDAP Programming with Java

    2. **安装配置LDAP服务器**:根据所选软件的不同,安装过程会有所差异,但一般包括安装软件包、配置LDAP数据库结构、设置访问控制策略等。 3. **测试LDAP服务器功能**:确保所有配置正确无误后,通过简单的查询操作...

    ldap目录数据库讲义

    Java JNI(Java Native Interface)允许Java代码调用本地(非Java)代码,这在实现与LDAP交互的Java应用时可能很有用。Spring框架也可以整合LDAP,为开发者提供便捷的目录服务集成。 流行的产品如Novell NDS...

    ldap 浏览器 LdapBrowser282

    5. **JDK环境依赖**:LdapBrowser282运行需要Java Development Kit(JDK)环境,确保Java语言的支持。 6. **导出与导入**:能够将目录数据导出为LDIF(LDAP Data Interchange Format)文件,或者从LDIF文件导入数据...

    ldap的一个实例

    - JNDI(Java Naming and Directory Interface)是Java中用来访问各种命名和目录服务的API,包括LDAP。通过JNDI,我们可以查找、添加、修改和删除目录条目。 - `InitialDirContext`:创建与LDAP服务器的连接。 - ...

    jdbc-ldap-2.1.zip

    JDBC(Java Database Connectivity)是Java编程语言中用于访问数据库的标准应用程序接口,而LDAP(Lightweight Directory Access Protocol)则是一种轻量级目录访问协议,主要用于管理分布式目录信息。当需要在Java...

    基于LDAP的XML数据访问

    基于LDAP的XML数据访问是一种利用轻型目录访问协议(LDAP)对可扩展标记语言(XML)数据进行表示和访问的方法。LDAP是一种提供分布式目录服务的网络协议,主要用于读取和写入存储在目录数据库中的信息。LDAP目录...

Global site tag (gtag.js) - Google Analytics