LDAP: código de error 49 – 80090308: LdapErr: DSID-0C0903A9, comentario: error de AcceptSecurityContext, datos 52e, v1db1

LDAP: código de error 49 – 80090308: LdapErr: DSID-0C0903A9, comentario: error de AcceptSecurityContext, datos 52e, v1db1

Sé que el código “52e” es cuando el nombre de usuario es válido, pero la contraseña no es válida. Estoy usando el mismo nombre de usuario y contraseña en mi estudio de apache, pude establecer la conexión exitosamente con LDAP.

Aquí está mi código java

String userName = "*******"; String password = "********"; String base ="DC=PSLTESTDOMAIN,DC=LOCAL"; String dn = "cn=" + userName + "," + base; Hashtable env = new Hashtable(); env.put(Context.INITIAL_CONTEXT_FACTORY,"com.sun.jndi.ldap.LdapCtxFactory"); env.put(Context.PROVIDER_URL, "ldap://******"); env.put(Context.SECURITY_AUTHENTICATION, "simple"); env.put(Context.SECURITY_PRINCIPAL, dn); env.put(Context.SECURITY_CREDENTIALS, password); LDAPAuthenticationService ldap = new LDAPAuthenticationService(); // LdapContext ctx; DirContext ctx = null; try { ctx = new InitialDirContext(env); 

Mi error está en esta línea : ctx = new InitialDirContext(env);

No sé exactamente qué está causando este error.

data 52e – Devuelve cuando el nombre de usuario es válido pero la contraseña / credencial no es válida.

Probablemente necesites algo como

 String dn = "cn=" + userName + "," + "CN=Users," + base; 

Para mí, el problema se resolvió cuando configuré la sección principal de esta manera:

 env.put(Context.SECURITY_PRINCIPAL, userId@domainWithoutProtocolAndPortNo); 

52e 1326 ERROR_LOGON_FAILURE Devuelve cuando el nombre de usuario es válido pero la contraseña / credencial no es válida. Evita que la mayoría de los otros errores se muestren como se indica.

http://ldapwiki.com/wiki/Common%20Active%20Directory%20Bind%20Errors

Tuve un problema similar al usar AD en CAS, es decir, el error 52e. En mi caso, la aplicación acepta el nombre completo cuando tiene la forma de CN = en lugar del nombre de usuario real.

Por ejemplo, si tiene un usuario cuyo nombre completo es Ross Butler y su nombre de usuario de inicio de sesión es rbutler, normalmente pondría algo así como, cn = rbutler, ou = Users, dc = domain, dc = com pero el nuestro falló cada vez. Al cambiar esto a cn = Ross Butler, ou = Usuarios, dc = dominio, dc = com pasaron !!

LDAP está intentando autenticarse con AD al enviar una transacción a otro servidor DB. Esta autenticación falla porque el usuario ha cambiado recientemente su contraseña, aunque esta transacción se generó utilizando las credenciales anteriores. Esta autenticación seguirá fallando hasta … a menos que cambie el estado de la transacción a Completar o Cancelar, en cuyo caso LDAP dejará de enviar estas transacciones.