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();
Share:
17,342
bschupbach
Author by

bschupbach

Updated on July 28, 2022

Comments

  • bschupbach
    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
    bschupbach over 12 years
    Thanks!! This did the trick...I knew it had to be something simple.