Example of reading users e-mail address from AD:
public static void main(String[] args)
{
 Hashtable env = new Hashtable(11);
 env.put(Context.SECURITY_PRINCIPAL, "userName (CN)");
 env.put(Context.SECURITY_CREDENTIALS, "pass");
 env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
 env.put(Context.PROVIDER_URL, "ldap://serverName:389/DC=domain1,DC=hr");
 String users = "ou=Unit,ou=Organizational";
 try
 {
  DirContext ctx = new InitialDirContext(env);
  Attributes answer = null;
  String[] attrIDs = { "mail" };//Specify the ids of the attributes to return
  NamingEnumeration list = ctx.list(users);
  while (list.hasMore())
  {
   NameClassPair nc = (NameClassPair) list.next();
   System.out.println(nc.getName());
   answer = ctx.getAttributes(nc.getName() + " , " + users, attrIDs);
   for (NamingEnumeration ae = answer.getAll(); ae.hasMore();)
   {
    Attribute attr = (Attribute) ae.next();
    System.out.println("attribute: " + attr.getID());
    /* Print each value */
    for (NamingEnumeration e = attr.getAll(); e.hasMore(); System.out.println(e.next()))
     ;
   }
  }
 }
 catch (NamingException e)
 {
  System.err.println(e);
 }
}
Resources:
http://www.windowsnetworking.com/kbase/WindowsTips/Windows2000/AdminTips/ActiveDirectory/ActiveDirectoryNamingStandard.html
http://docs.oracle.com/javase/tutorial/jndi/ops/getattrs.html
 
No comments:
Post a Comment