package org.jboss.teiid.ldap; import java.util.Hashtable; import javax.naming.Context; import javax.naming.NamingEnumeration; import javax.naming.NamingException; import javax.naming.directory.Attribute; 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 OpenLDAPCustomerClient { public static void main(String[] args) throws NamingException { Hashtable env = new Hashtable(); 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=Customers,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 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()); } Attributes attrs = ctx.getAttributes("cn=Tester,ou=Roles,dc=example,dc=com"); Attribute attr = attrs.get("uniquemember"); NamingEnumeration nem = attr.getAll(); System.out.println(attr); while(nem.hasMoreElements()) { System.out.println(nem.nextElement()); } } }