package jndisamples;
import java.util.Hashtable;
import javax.naming.*;
import javax.naming.directory.*;
public class ReadMulti {
public static void main(String[] args){
try{
InitialDirContext root =
login("127.0.0.1",
"cn=mseaver,ou=HR,o=SLC",
"password");
// Read SN and givenName Attributes of cn=mseaver,ou=HR,o=SLC
DirContext ctx =
(DirContext)root.lookup("cn=mseaver,ou=HR,o=SLC");
String[] ids = {"sn", "givenName"};
Attributes attrs = ctx.getAttributes("", ids);
NamingEnumeration enum = attrs.getAll();
while(enum.hasMore()){
Attribute attr = (Attribute)enum.next();
System.out.print(attr.getID() + ": ");
NamingEnumeration values = attr.getAll();
while(values.hasMore()){
System.out.print("'" + (String)values.next() + "' ");
}
System.out.println();
}
root.close();
}catch(NamingException ex){
System.out.println("Error: " + ex);
}
}
private static InitialDirContext
login(String ipaddr, String user, String password)
throws NamingException{
Hashtable environment = new Hashtable();
environment.put(Context.INITIAL_CONTEXT_FACTORY,
"com.sun.jndi.ldap.LdapCtxFactory");
environment.put(Context.PROVIDER_URL,
"ldap://" + ipaddr + ":389");
environment.put(Context.SECURITY_PRINCIPAL, user);
environment.put(Context.SECURITY_CREDENTIALS, password);
environment.put(Context.SECURITY_AUTHENTICATION, "simple");
InitialDirContext root = new InitialDirContext(environment);
System.out.println("Successfully Logged-In");
return root;
}
}
/* Output:
Successfully Logged-In
givenName: 'Michael' 'James'
sn: 'Seaver'
*/
End of Listing