package org.teiid.embedded.samples.ldap; import java.util.Hashtable; import javax.naming.Context; import javax.naming.NamingEnumeration; import javax.naming.NamingException; import javax.naming.directory.Attributes; import javax.naming.directory.DirContext; import javax.naming.directory.SearchControls; import javax.naming.directory.SearchResult; import javax.naming.ldap.InitialLdapContext; import javax.naming.ldap.LdapContext; public class OpenLDAPClient { public static void main(String[] args) throws NamingException { Hashtable<String,String> env = new Hashtable<String,String>(); env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory"); env.put(Context.PROVIDER_URL, "ldap://10.66.218.46:389"); env.put(Context.SECURITY_PRINCIPAL, "cn=Manager,dc=example,dc=com"); env.put(Context.SECURITY_CREDENTIALS, "redhat"); DirContext ctx = new InitialLdapContext(env, null); LdapContext context = (LdapContext) ctx.lookup("ou=HR,dc=example,dc=com"); SearchControls controls = new SearchControls(); controls.setSearchScope(SearchControls.ONELEVEL_SCOPE); controls.setTimeLimit(6); controls.setCountLimit(5); controls.setReturningAttributes(new String[]{"uid", "cn", "mail", "sn"}); String filter = "(objectClass=*)"; NamingEnumeration<SearchResult> en = context.search("", filter, controls); while(en.hasMoreElements()){ SearchResult result = en.nextElement(); Attributes attrs = result.getAttributes(); System.out.print(attrs.get("uid").get() + ", "); System.out.print(attrs.get("cn").get() + ", "); System.out.print(attrs.get("mail").get() + ", "); System.out.println(attrs.get("sn").get()); } } }