LDAP: codice errore 49 – 80090308: LdapErr: DSID-0C0903A9, commento: errore AcceptSecurityContext, dati 52e, v1db1

LDAP: codice errore 49 – 80090308: LdapErr: DSID-0C0903A9, commento: errore AcceptSecurityContext, dati 52e, v1db1

So che il codice “52e” è quando il nome utente è valido, ma la password non è valida. Sto usando lo stesso nome utente e la stessa password nel mio studio di apache, sono riuscito a stabilire la connessione con successo su LDAP.

Ecco il mio codice 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); 

Il mio errore è su questa linea : ctx = new InitialDirContext(env);

Non so cosa stia causando esattamente questo errore.

data 52e – Restituisce quando il nome utente è valido ma password / credenziale non è valido.

Probabilmente hai bisogno di qualcosa del genere

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

Per me il problema è stato risolto quando ho impostato la sezione principale in questo modo:

 env.put(Context.SECURITY_PRINCIPAL, [email protected]); 

52e 1326 ERROR_LOGON_FAILURE Restituisce quando il nome utente è valido ma password / credenziale non è valido. Eviterà che la maggior parte degli altri errori venga visualizzata come indicato.

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

Ho riscontrato un problema simile durante l’utilizzo di AD su CAS, ovvero errore 52e. Nel mio caso l’applicazione accetta il nome completo quando è sotto forma di CN = invece del nome utente effettivo.

Ad esempio, se hai un utente il cui nome completo è Ross Butler e il suo nome utente di accesso è rbutler, normalmente inserire qualcosa come cn = rbutler, ou = Users, dc = domain, dc = com ma il nostro non è riuscito ogni volta. Cambiando ciò in cn = Ross Butler, ou = Users, dc = domain, dc = com è passato !!

LDAP sta tentando di autenticarsi con AD quando invia una transazione a un altro DB server. Questa autenticazione non riesce perché l’utente ha modificato la password di recente, sebbene questa transazione sia stata generata utilizzando le credenziali precedenti. Questa autenticazione manterrà il fallimento fino a … a meno che non si cambi lo stato della transazione in Completo o Annulla, nel qual caso LDAP interromperà l’invio di tali transazioni.