/* * Copyright 2005 Inventive Designers nv. */ package id.security.authentication.service.ldap; import java.util.Properties; import javax.naming.Context; import javax.naming.NamingEnumeration; import javax.naming.directory.DirContext; import javax.naming.directory.InitialDirContext; import javax.naming.directory.SearchControls; /** * * @author David Geleyn */ public class Test { public static void main(String[] args) throws Exception { final Properties env = new Properties(); env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory"); env.put(Context.PROVIDER_URL, "ldap://david:389"); env.put(Context.SECURITY_AUTHENTICATION, "simple"); env.put("java.naming.ldap.version", "3"); env.put(Context.SECURITY_PRINCIPAL, "uid=admin,ou=system"); env.put(Context.SECURITY_CREDENTIALS, "secret"); int positive = 0; for (int i = 0; i < 1000; i++) { // Try to authenticate user. DirContext userContext = new InitialDirContext(env); final SearchControls constraints = new SearchControls(); constraints.setDerefLinkFlag(true); constraints.setSearchScope(SearchControls.SUBTREE_SCOPE); String filter = "(&(cn=administrators)(uniqueMember=uid=akarasulu,ou=users,ou=system))"; NamingEnumeration enum = userContext.search("ou=groups,ou=system", filter, constraints); enum = userContext.search("ou=groups,ou=system", filter, constraints); if (enum.hasMoreElements()) positive++; userContext.close(); } System.out.println(positive); } }