Registering for Namespace Changes in the Directory
import java.util.Hashtable;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.event.EventContext;
import javax.naming.event.NamespaceChangeListener;
import javax.naming.event.NamingEvent;
import javax.naming.event.NamingExceptionEvent;
import javax.naming.event.NamingListener;
public class Main {
public static void main(String[] argv) throws Exception {
Hashtable<String, String> env = new Hashtable<String, String>();
env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
env.put(Context.PROVIDER_URL, "YourURL");
env.put(Context.SECURITY_AUTHENTICATION, "simple");
env.put(Context.SECURITY_PRINCIPAL, "userDN");
env.put(Context.SECURITY_CREDENTIALS, "secret");
EventContext ctx = (EventContext) (new InitialContext(env).lookup("ou=People"));
NamingListener listener = new SampleNCListener();
ctx.addNamingListener("cn=John", EventContext.ONELEVEL_SCOPE, listener);
}
}
class SampleNCListener implements NamespaceChangeListener {
public SampleNCListener() {
}
public void objectAdded(NamingEvent evt) {
System.out.println(evt.getNewBinding().getName());
}
public void objectRemoved(NamingEvent evt) {
System.out.println(evt.getOldBinding().getName());
}
public void objectRenamed(NamingEvent evt) {
System.out.println(evt.getOldBinding().getName());
}
public void namingExceptionThrown(NamingExceptionEvent evt) {
System.out.println(evt.getException().getExplanation());
}
}
Related examples in the same category