devxlogo

Work with SSL/LDAP Using Java

Work with SSL/LDAP Using Java

Most applications nowadays authenticate through LDAP (directory service). To set this up, first register the SSL certificate using the keytool utility, as shown below:

Register ssl certificate using keytool:keytool -import -alias <certname> -file  -keystore "..yourpathjavajrelibsecuritycacerts"

The following code shows how to connect to LDAP and display the values specific to a username:

..class name.... public static void main(String args[]){String keystore = System.getProperty("" + "/lib/security/cacerts");System.setProperty(LDAPConstants.LDAP_SSL_TRUST_STORE,keystore);try{Hashtable env = new Hashtable();env.put(Context.INITIAL_CONTEXT_FACTORY,"com.sun.jndi.ldap.LdapCtxFactory");env.put(Context.PROVIDER_URL, "ldap://yourservername:636");env.put(Context.SECURITY_AUTHENTICATION, "simple");env.put(Context.SECURITY_PROTOCOL, "ssl");env.put(Context.SECURITY_PRINCIPAL, "yourusername");env.put(Context.SECURITY_CREDENTIALS, "yourpassword");				dirCtx = new InitialLdapContext(env, null);NamingEnumeration ne = null;SearchControls controls =  new SearchControls();controls.setSearchScope(SearchControls.SUBTREE_SCOPE);ne = dirCtx.search("OU=Users,DC=yourcompany, DC=com, DC=au","userName="+userName,controls); if (ne != null) {  if (ne.hasMore()) {    SearchResult item = (SearchResult) ne.next();	display(item.getAttributes());  }}catch(javax.naming.AuthenticationException e){  e.printStackTrace();}catch(NamingException e) {  e.printStackTrace();}}private static void display(Attributes attr) throws NamingException{  NamingEnumeration ne = attr.getAll();  while(ne.hasMore()){	Attribute  obj = (Attribute)ne.next();	System.out.println(obj.getID()+"	"+(String)obj.get(0));  }}.......

devx-admin

Share the Post: