import java.util.Hashtable;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.directory.SearchControls;
import javax.naming.event.EventDirContext;
import javax.naming.event.NamingEvent;
import javax.naming.event.NamingExceptionEvent;
import javax.naming.event.NamingListener;
import javax.naming.event.ObjectChangeListener;
public class Main {
public static void main(String[] argv) throws Exception {
String url = "ldap://localhost/o=JNDITutorial";
Hashtable<String, String> env = new Hashtable<String, String>();
env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
env.put(Context.PROVIDER_URL, url);
env.put(Context.SECURITY_AUTHENTICATION, "simple");
env.put(Context.SECURITY_PRINCIPAL, "userDN");
env.put(Context.SECURITY_CREDENTIALS, "secret");
EventDirContext ctx = (EventDirContext) (new InitialContext(env).lookup("ou=People"));
NamingListener listener = new SampleObjListener();
SearchControls ctls = new SearchControls();
ctls.setSearchScope(SearchControls.SUBTREE_SCOPE);
String filter = "(mail=*)";
ctx.addNamingListener("cn=YourName", filter, ctls, listener);
}
}
class SampleObjListener implements ObjectChangeListener {
public SampleObjListener() {
}
public void objectChanged(NamingEvent evt) {
System.out.println(evt.getNewBinding().getName());
System.out.println(evt.getOldBinding().getName());
}
public void namingExceptionThrown(NamingExceptionEvent evt) {
System.out.println(evt.getException());
}
}
|