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;
}
}
分享到:
相关推荐
安装完成后,需要创建一个基本的LDAP数据库配置: ``` sudo /usr/bin/slaptest -f /etc/openldap/slapd.conf -F /etc/openldap/slapd.d sudo systemctl start slapd sudo systemctl enable slapd ``` 3. **...
4. **初始化数据库**:使用特定工具创建和初始化LDAP数据库。 5. **启动与测试**:启动SUN LDAP服务器,并使用`ldapsearch`或Java LDAP API进行测试查询,确保服务器工作正常。 6. **安全管理**:配置访问控制策略,...
1. **JNDI(Java Naming and Directory Interface)**:是Java中用于访问命名和目录服务的API,包括与LDAP的交互。 2. **连接配置**:通过`InitialDirContext`实例化,提供URL(如`ldap://localhost:389`)和凭据。...
**JNDI(Java Naming and Directory Interface)**是Java平台中的一个标准API,它允许Java应用程序访问各种命名和目录服务,如LDAP(Lightweight Directory Access Protocol)。在Java应用中,JNDI通常用于管理和...
本文将深入探讨如何使用Java通过LDAP(轻量级目录访问协议)和SSL(安全套接层)来实现用户和组织(部门)的增删改查操作,并结合证书确保通信的安全性。这些功能通常用于大型企业的用户管理,例如Active Directory...
**LDAP(Lightweight Directory Access Protocol)**是一种轻量级目录访问协议,用于访问和管理分布式目录服务。在Java中,可以使用Java LDAP API来与LDAP服务器进行交互,执行查询、添加、删除、修改等操作。本指南...
**LDAP (轻量级目录访问协议) 是一种用于存储和检索目录信息的标准协议,它以树形结构组织数据。...记住,实践是检验理解的最好方式,尝试编写并运行上述代码,以加深对LDAP与Java结合运用的理解。
IBM LDAP(Lightweight Directory Access Protocol)是IBM提供的一种基于X.500标准的轻量级目录访问协议,用于在分布式环境中存储和检索用户信息、配置数据和其他对象。本篇文章将深入探讨IBM LDAP的基础知识,并...
LDAP(轻量级目录访问协议)是一种基于X.500标准的目录服务协议,它允许快速查找和管理分布式数据库中的信息。在Java中,我们可以使用JNDI(Java Naming and Directory Interface)来实现与LDAP服务器的交互。 首先...
通过JNDI与Java结合,开发者可以轻松地实现对IBM Directory Server LDAP v3的访问和管理。理解基本的LDAP概念、配置连接、执行操作以及错误处理是成功实现这一目标的关键步骤。不断探索和实践,可以进一步提升在Java...
要使用这些文件,你需要在Java环境中配置正确的环境变量,并确保你的应用程序拥有足够的权限来访问Oracle数据库和LDAP服务器。在编写代码时,可以使用JDBC的`DriverManager.getConnection()`方法来建立与Oracle...
2. **安装配置LDAP服务器**:根据所选软件的不同,安装过程会有所差异,但一般包括安装软件包、配置LDAP数据库结构、设置访问控制策略等。 3. **测试LDAP服务器功能**:确保所有配置正确无误后,通过简单的查询操作...
Java JNI(Java Native Interface)允许Java代码调用本地(非Java)代码,这在实现与LDAP交互的Java应用时可能很有用。Spring框架也可以整合LDAP,为开发者提供便捷的目录服务集成。 流行的产品如Novell NDS...
5. **JDK环境依赖**:LdapBrowser282运行需要Java Development Kit(JDK)环境,确保Java语言的支持。 6. **导出与导入**:能够将目录数据导出为LDIF(LDAP Data Interchange Format)文件,或者从LDIF文件导入数据...
- JNDI(Java Naming and Directory Interface)是Java中用来访问各种命名和目录服务的API,包括LDAP。通过JNDI,我们可以查找、添加、修改和删除目录条目。 - `InitialDirContext`:创建与LDAP服务器的连接。 - ...
JDBC(Java Database Connectivity)是Java编程语言中用于访问数据库的标准应用程序接口,而LDAP(Lightweight Directory Access Protocol)则是一种轻量级目录访问协议,主要用于管理分布式目录信息。当需要在Java...
基于LDAP的XML数据访问是一种利用轻型目录访问协议(LDAP)对可扩展标记语言(XML)数据进行表示和访问的方法。LDAP是一种提供分布式目录服务的网络协议,主要用于读取和写入存储在目录数据库中的信息。LDAP目录...