package com.bi.test;
import java.util.Hashtable;
import javax.naming.Context;
import javax.naming.NamingEnumeration;
import javax.naming.NamingException;
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){
Hashtable env = new Hashtable();
env.put(Context.PROVIDER_URL, "ldap://10.21.16.189:389");
env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
env.put(Context.SECURITY_AUTHENTICATION, "simple");
env.put(Context.SECURITY_PRINCIPAL, "zhugl@umapad.com");
env.put(Context.SECURITY_CREDENTIALS, "123qwe!@#QWE");
try {
LdapContext context = new InitialLdapContext(env, null);
SearchControls controls = new SearchControls();
controls.setSearchScope(SearchControls.SUBTREE_SCOPE);
NamingEnumeration en = context.search("dc=umapad,dc=com", "sAMAccountName=zhu*", controls);
String[] attrs = {"company","department","title","telephoneNumber","description"};
controls.setReturningAttributes(attrs);
while(en!=null && en.hasMoreElements()){
Object obj = en.next();
if(obj instanceof SearchResult){
SearchResult rs = (SearchResult)obj;
String company = rs.getAttributes().get("company").get().toString();
String mail = rs.getAttributes().get("mail").get().toString();
System.out.println("company["+company+"]"+mail);
}
}
System.out.println("connected");
} catch (NamingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}