import java.util.Properties;

import javax.naming.Context;
import javax.naming.NamingEnumeration;
import javax.naming.directory.InitialDirContext;
import javax.naming.directory.SearchControls;
import javax.naming.directory.SearchResult;

public class LDAPSearch {

	public static void main(String[] args) throws Exception {

		//InitialDirContextの作成
		Properties env = new Properties();
		env.setProperty(Context.INITIAL_CONTEXT_FACTORY,"com.sun.jndi.ldap.LdapCtxFactory");
		env.put(Context.PROVIDER_URL, "ldap://localhost:1396");
		InitialDirContext ctx = new InitialDirContext(env);

		//検索して結果を表示
		SearchControls ctrl = new SearchControls();
		ctrl.setSearchScope(ctrl.SUBTREE_SCOPE);
		NamingEnumeration enum = ctx.search("dc=example,dc=com", "cn=*", ctrl);

		while (enum.hasMore()) {
			SearchResult sr = (SearchResult) enum.next();
			System.out.println(sr);
		}

		System.out.println("END");
	}
}
