We will use only standard Java classes. So we don't need any dependency. In the example you can see my configurations. Yours may differ (pay attention to Context.SECURITY_PRINCIPAL). Here is the code:
import java.util.Properties; 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.SearchControls; import javax.naming.directory.SearchResult; import javax.naming.ldap.InitialLdapContext; public class LdapTest { public static void processRequest(InitialLdapContext ctx, String userContext, String filter, String attribute) { SearchControls searchControls = new SearchControls(); searchControls.setSearchScope(SearchControls.SUBTREE_SCOPE); NamingEnumeration<SearchResult> searchResults; try { searchResults = ctx.search(userContext, filter, searchControls); while (searchResults.hasMoreElements()) { SearchResult sr = searchResults.next(); Attributes attributes = sr.getAttributes(); Attribute a = attributes.get(attribute); if (a != null) { String attrValue = (a.get().toString()); System.out.println(attrValue); } else { System.out.println("Cannot get data"); } } } catch (NamingException e) { e.printStackTrace(); } } private static InitialLdapContext initialiaseLdapContext(String server, int port, String username, String password, String contextDN) { boolean initialised = false; Properties properties = new Properties(); properties.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory"); properties.put(Context.PROVIDER_URL, "ldap://" + server + ":"+ port); properties.put(Context.SECURITY_AUTHENTICATION, "simple"); properties.put(Context.SECURITY_PRINCIPAL, "uid=" + username + "," + contextDN); //YOU MAY NEED TO CHANGE CODE HERE properties.put(Context.SECURITY_CREDENTIALS, password); InitialLdapContext ctx = null; try { // Create initial context ctx = new InitialLdapContext(properties, null); initialised = true; } catch (NamingException e) { initialised = false; } finally { if (initialised) { System.out.println("Initialization success"); } else { System.out.println("Initialization fail"); } } return ctx; } public static void main(String[] args) { String contextDN = "dc=test,dc=com"; InitialLdapContext ctx = initialiaseLdapContext("localhost", 389, "test@test.com", "test" , contextDN); try { if (ctx != null) { processRequest(ctx, contextDN, "(uid=qwertTest@test.com)", "street"); ctx.close(); } } catch (NamingException e) { e.printStackTrace(); } } }