LDAP Authentication using SSL

Add your SSL certificate into Java keystore


Java support the certificate management utility keytool to handle certificates into your keystore.For import a certificate, you need to specify three arguments :

keystore : Absolute path to your keystore. (By default : C:\Program Files\Java\jdk1.8.0_232\jre\lib\security)
alias : Give a name to your certificate The given name should not already exist in the keystore
file : Absolute path to the certificate you want to import

Use the following code to import your certificate into the default java keystore :

keytool -keystore <PATH_TO_JRE>/lib/security/cacerts -import -alias certificate -file <PATH_TO_CERTIFICATE>/certificate.cer

The default keystore password is : changeit

Running your application with SSL

To allow your application to connect with SSL you can choose one of the two solutions :

Writing code in your application code
Add the following system properties before LDAP authentication


//Path to your keystore where you registered the SSL certificate
String keystorePath = "C:/Program Files/Java/jdk1.7.0_79/jre/lib/security/cacerts";
System.setProperty("javax.net.ssl.keyStore", keystorePath);
 
// Password of your java keystore. Default value is : changeit
System.setProperty("javax.net.ssl.keyStorePassword", "changeit");

Add JVM arguments
Start your application by adding the folowing arguments :

-Djavax.net.ssl.keyStore="C:/Program Files/Java/jdk1.8.0_232/jre/lib/security/cacerts" -Djavax.net.ssl.keyStorePassword=changeit

LDAP Connection

Once you added the trusted certificate to Java keystore and started your application with the required arguments, you can use the following code to make a LDAP authentication :

// Setting the LDAP connection information
Hashtable<String, String> env = new Hashtable<String, String>();
env.put(Context.PROVIDER_URL, "ldaps://server.local:636");
env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
env.put(Context.SECURITY_AUTHENTICATION, "simple");
env.put(Context.SECURITY_PRINCIPAL, "cn=radouane,ou=people,o=RoufidTutorials,c=fr");
env.put(Context.SECURITY_CREDENTIALS, "password");
 
DirContext ctx = null;
 
try {
	// Openning the connection
	ctx = new InitialDirContext(env);
			
	// Use your context here...
} catch (NamingException e) {
	System.out.println("Problem occurs during context initialization !");
	e.printStackTrace();
}

Discover more from PlusDigit

Subscribe to get the latest posts sent to your email.

Discover more from PlusDigit

Subscribe now to keep reading and get access to the full archive.

Continue reading

AdBlock Detected!

Please disable your AdBlocker to access this website.

Once disabled, this message will disappear automatically.