Main.java Source code

Java tutorial

Introduction

Here is the source code for Main.java

Source

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());
    }
}