package test;
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 test {
private static test instance = new test();
private DirContext ctx = null;
public static test getInstance(){
return instance;
}
public test() {
init();
}
public void init(){
try{
Hashtable env = new Hashtable();
String rootdn = "cn=root,dc=universityname,dc=com";
String rootpw = "secret";
env.put(Context.SECURITY_AUTHENTICATION, "simple");
env.put(Context.SECURITY_PRINCIPAL, rootdn);
env.put(Context.SECURITY_CREDENTIALS, rootpw);
env.put(Context.INITIAL_CONTEXT_FACTORY,
"com.sun.jndi.ldap.LdapCtxFactory");
env.put(Context.PROVIDER_URL,"ldap://localhost:389");
ctx = new InitialDirContext(env);
}
catch(Exception e){
System.out.println(e.toString());
}
}
public void reload(){
instance = new test();
}
public String getPassword(String userId) {
byte[] password = null;
try{
String userObjectClass = "inetorgPerson";
String userIdAttrName = "uid";
String userPwdAttrName = "userPassword";
String rootEntry = "dc=universityname,dc=com";
SearchControls controls = new SearchControls();
controls.setCountLimit(1);
controls.setSearchScope(SearchControls.SUBTREE_SCOPE);
String filter = "(&(objectClass=" + userObjectClass + ")(" +
"uid" + "=" + userId + "))";
NamingEnumeration ne = ctx.search(rootEntry, filter, controls);
if (ne.hasMore()) {
SearchResult sr = (SearchResult)ne.next();
Attributes attrs = sr.getAttributes();
Attribute passwordAttr = attrs.get(userPwdAttrName);
password = (byte[])passwordAttr.get();
}
else{
}
return new String(password);
}
catch(Exception e){
init();
System.out.println(e.toString());
return "";
}
}
public static void main(String[] args){
try{
System.out.println(test.getInstance().getPassword("test42"));
}
catch(Exception e){
e.printStackTrace();
}
}
}
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/chen_hh2/archive/2005/11/21/534140.aspx
分享到:
相关推荐
JAVA中使用LDAP进行用户认证,可靠、可用、可复制
4 2 LDAP 目录服务的应用..............................................29 4 3 LDAP 的基本结构和功能..........................................30 吉大正元信息技术股份有限公司 JIT-CA/目录服务培训教程5 4 4 ...
java操作ldap类java操作ldap类java操作ldap类
基于Java平台的Ldap目录和数据读取工具。
基于LDAP目录服务的研究与应用.nh 基于LDAP目录服务的研究与应用.nh 基于LDAP目录服务的研究与应用.nh 基于LDAP目录服务的研究与应用.nh 基于LDAP目录服务的研究与应用.nh 基于LDAP目录服务的研究与应用.nh
在企业范围内实现 LDAP 可以让运行在几乎所有计算机平台上的 所有的应用程序从 LDAP 目录中获取信息。LDAP 目录中可以存储各种类型的数据:电子 邮件地址、邮件路由信息、人力资源数据、公用密匙、联系人列表,等等...
java连接和验证的ldap学习文档,密码的校验,通过jndi连接ldap服务
NULL 博文链接:https://ssailyang.iteye.com/blog/1248407
java使用ldap修改ad域用户密码
java连接LDAP实例和jar包,里面包含ssl连接和更改LDAP属性的例子,公参考
某金融机构身份国产化LDAP目录服务建设案例分析.docx
LDAP是轻量级目录访问协议的简称(Lightweight Directory Access Protocol).用于访问目录服务。它是X.500目录访问协议的移植,但是简化了实现方法。本文给大家带来LDAP使用手册,需要的可以来下载看看 LDAP的优点 1:...
LDAP的基本概念LDAP是轻量目录访问协议(Lightweight Directory Access Protocol)的缩写,是一种基于 客户机/服务器模式的目录服务访问协议.其实是一话号码簿,LDAP是一种特殊的数据库。LDAP目录的优势LDAP协议是跨...
有点类似Java中Map的概念。a directory service is simply the software system that stores, organizes and provides access to information in a directory. 一个目录服务就是一个简单的软件系统,在这个目录上...
LDAP programming with java
JAVA中使用LDAP进行用户认证 详细的JAVA代码
用JAVA实现LDAP的访问.txt 用JAVA实现LDAP的访问.txt
将 LDIF 文件导入 LDAP 服务器.txt
java 连接 ldap服务器源代码,大家可以下来看看。。。。。
从简单介绍X.500协议出发,介绍LDAP的起源,简要比较LDAP与X.500协议的区别,概述LDAP框架模型;从应用目录服务角度,简述了LDAP目录服务功能模块和工作流程;介绍分析LDAP目录服务发展现状;最后预测其发展方向。