package jndisamples;
import java.util.Hashtable;
import javax.naming.*;
import javax.naming.directory.*;
public class Update {
public static void main(String[] args) {
try{
InitialDirContext root =
login("127.0.0.1", "cn=mseaver,ou=HR,o=SLC",
"password");
DirContext ctx =
(DirContext)root.lookup("cn=mseaver,ou=HR,o=SLC");
ModificationItem[] mods = new ModificationItem[3];
Attribute oldName = new BasicAttribute("givenName",
"James");
Attribute newName = new BasicAttribute("givenName",
"Jimmy");
Attribute newFull =
new BasicAttribute("fullName", "Michael Jimmy Seaver");
mods[0] =
new ModificationItem(DirContext.REMOVE_ATTRIBUTE,
oldName);
mods[1] =
new ModificationItem(DirContext.ADD_ATTRIBUTE, newName);
mods[2] =
new ModificationItem(DirContext.REPLACE_ATTRIBUTE,
newFull);
ctx.modifyAttributes("", mods);
System.out.println("Modification Successful");
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
Modification Successful
*/
End of Listing