package jndisamples;
import java.util.Hashtable;
import javax.naming.*;
import javax.naming.directory.*;
public class Read {
public static void main(String[] args){
try{
InitialDirContext root =
login("127.0.0.1",
"cn=mseaver,ou=HR,o=SLC","password");
// Read SN Attribute of cn=admin,o=services
DirContext ctx =
(DirContext)root.lookup("cn=mseaver,ou=HR,o=SLC");
String[] sn = {"sn"};
Attributes attrs = ctx.getAttributes("", sn);
Attribute attr = attrs.get("sn");
if(attr != null){
String value = (String)attr.get();
System.out.println("SN: " + value);
}
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
SN: Seaver
*/
End of Listing