Java ldap authentication issue
17,342
Have you tried this way?
//...
env.put(Context.SECURITY_PRINCIPAL, "cn="+ userId +",ou=All Users,dc=site,dc=org");
//...
Also replace
Hashtable env = new Hashtable(11);
with
Hashtable env = new Hashtable();
Author by
bschupbach
Updated on July 28, 2022Comments
-
bschupbach almost 2 years
I'm trying to have my custom java application use our Active Directory Server for authentication but I cannot get it to work for some reason. Can anyone see why this is? Here is my method below:
private boolean authenticate(String serverName, String userId, String password) throws NamingException { DirContext ctx = null; Hashtable env = new Hashtable(11); boolean b = false; try { env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory"); env.put(Context.PROVIDER_URL, "ldap://servername.org:389"); env.put(Context.SECURITY_AUTHENTICATION, "simple"); env.put(Context.SECURITY_PRINCIPAL, "uid="+ userId +",ou=All Users,dc=site,dc=org"); env.put(Context.SECURITY_CREDENTIALS, password); System.out.println("before context"); // If there isn't a naming exception then the user is authenticated. Return true ctx = new InitialDirContext(env); //The user is authenticated. b = true; } catch (NamingException e) { System.out.println("the user is not authenticated return false"); b = false; }finally{ if(ctx != null) ctx.close(); } return b; }
Result:
[12/14/11 16:27:47:746 CST] 0000001f SystemErr R javax.naming.AuthenticationException: [LDAP: error code 49 - 80090308: LdapErr: DSID-0C090334, comment: AcceptSecurityContext error, data 52e, vece
-
bschupbach over 12 yearsThanks!! This did the trick...I knew it had to be something simple.