LDAP: error code 49-80090308: LdapErr: DSID-0C0903A9, comment: AcceptSecurityContext error, data 52e, v1db1

LDAP: error code 49-80090308: LdapErr: DSID-0C0903A9, comment: AcceptSecurityContext error, data 52e, v1db1

je sais que le code" 52e " est quand le nom d'utilisateur est valide, mais le mot de passe n'est pas valide. J'utilise le même nom d'utilisateur et mot de passe dans mon studio apache, j'ai pu établir la connexion avec succès avec LDAP.

Voici mon code 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);

Mon erreur est sur cette ligne: ctx = new InitialDirContext(env);

Je ne sais pas exactement ce qui cause cette erreur.

26
demandé sur simbabque 2015-07-14 18:59:04

7 réponses

données 52e - retourne lorsque le nom d'utilisateur est valide mais que le mot de passe/justificatif d'identité n'est pas valide.

Vous avez probablement besoin de quelque chose comme

String dn = "cn=" + userName + "," + "CN=Users," + base;  
16
répondu jwilleke 2015-07-15 13:50:56

pour moi, le problème a été résolu lorsque j'ai placé la section principale comme ceci:

env.put(Context.SECURITY_PRINCIPAL, userId@domainWithoutProtocolAndPortNo);
16
répondu Vishal 2016-11-09 15:45:08

52e 1326 ERROR_LOGON_FAILURE retourne lorsque le nom d'utilisateur est valide mais que le mot de passe/justificatif d'identité est invalide. Empêchera la plupart des autres erreurs d'être affichées comme noté.

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

10
répondu brcaak 2017-01-24 09:55:26

j'ai eu un problème similaire en utilisant AD sur CAS , c.-à-d. erreur 52e, dans mon cas application accepte le nom complet quand sous la forme de CN= au lieu du nom d'utilisateur réel.

par exemple, si vous aviez un utilisateur dont le nom complet est Ross Butler et dont le nom d'utilisateur de connexion est rbutler --vous mettriez normalement quelque chose comme,cn=rbutler,ou=Users,dc=domain, dc=com mais le nôtre a échoué à chaque fois. En changeant ceci en cn = Ross Butler,ou=Users,dc=domain, dc=com it passed!!

3
répondu Count 2017-08-14 05:20:49

LDAP essaie de s'authentifier avec la publicité lors de l'envoi d'une transaction à un autre serveur DB. Cette authentification échoue parce que l'Utilisateur a récemment changé son mot de passe, bien que cette transaction ait été générée à l'aide des justificatifs d'identité précédents. Cette authentification continuera d'échouer jusqu'à ce que ... à moins que vous ne changiez le statut de la transaction pour compléter ou Annuler, dans ce cas, LDAP cessera d'envoyer ces transactions.

1
répondu Ebrahim 2017-04-13 20:40:45

Dans mon cas je dois utiliser quelque chose comme @ pour réussir la connexion.

sample_user@sample_domain

1
répondu Linh Nguyen 2018-09-24 07:50:26

lorsque vous utilisez le contexte.SECURITY_AUTHENTICATION en tant que" simple", vous devez fournir la valeur de l'attribut userPrincipalName (user@domain_base).

0
répondu Abouelwafa 2018-10-09 16:19:04