package cn.com.icinfo.zuinfo.util;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Hashtable;
import java.util.List;
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 BianLiLdap {
public static StringBuffer getLdapValue(Attributes oAttrs, String proname)
throws Exception {
StringBuffer result = new StringBuffer();
Attribute attrpro = oAttrs.get(proname);
if (attrpro == null) {
result.append("");
return result;
}
NamingEnumeration attrpros = attrpro.getAll();
try {
while (attrpros.hasMore()) {
String pro = (String) attrpros.next();
result.append(pro+";");
}
} catch (Exception e) {
e.printStackTrace();
} finally {
if (attrpros != null) {
attrpros.close();
}
}
return result;
}
public static List<HashMap> getMultAttrsValue() {
Hashtable coninfo = new Hashtable();
coninfo.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
coninfo.put(Context.REFERRAL, "follow");
coninfo.put(Context.PROVIDER_URL, "ldap://127.0.0.1/dc=example,dc=edu,dc=cn");
coninfo.put(Context.SECURITY_PROTOCOL, "plain");
coninfo.put("java.naming.ldap.version", "3");
coninfo.put(Context.SECURITY_AUTHENTICATION, "simple");
coninfo.put(Context.SECURITY_PRINCIPAL, "cn=directory manager");
coninfo.put(Context.SECURITY_CREDENTIALS, "admin123");
coninfo.put("com.sun.jndi.ldap.connect.pool", "true");
DirContext ctx = null;
try {
ctx = new InitialDirContext(coninfo);
} catch (NamingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
NamingEnumeration answer = null;
try {
List results = new ArrayList();
SearchControls ctls = new SearchControls();
//ctls.setReturningAttributes(attrIDs);
ctls.setSearchScope(SearchControls.SUBTREE_SCOPE);
answer = ctx.search("", "(objectclass=*)", ctls);
// get it's original attributes
Attributes oAttrs = null;
if (answer != null) {
while (answer.hasMore()) {
HashMap result = new HashMap();
SearchResult sr = (SearchResult) answer.next();
System.out.println("((("+sr.getName()+")))");
oAttrs = sr.getAttributes();
/*NamingEnumeration ne = oAttrs.getAll();
while(ne.hasMore()){
String attr = ne.next().toString();
System.out.println(attr);
}*/
NamingEnumeration IDs = oAttrs.getIDs();
while(IDs.hasMore()){
String attID = IDs.next().toString();
StringBuffer attValue = getLdapValue(oAttrs, attID);
result.put(attID, attValue);
System.out.println(attID+"="+attValue);
}
results.add(result);
System.out.println("======================================");
}
}
return results;
} catch (Exception e) {
e.printStackTrace();
return null;
} finally {
if (answer != null) {
try {
answer.close();
} catch (NamingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
getMultAttrsValue();
}
}
java代码遍历ldap
最新推荐文章于 2021-02-02 10:20:10 发布