六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 12|回复: 0

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

[复制链接]

升级  83.33%

51

主题

51

主题

51

主题

秀才

Rank: 2

积分
175
 楼主| 发表于 2013-2-3 13:05:01 | 显示全部楼层 |阅读模式
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;     }}
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表