2017-06-08 2 views
0

J'essaie de créer un utilisateur dans ldap en utilisant java, mais l'utilisateur est en cours de création mais il est désactivé, comment l'activer lors de la création de l'utilisateur, l'écriture du code que j'utilise pour la création. Un paramètre est-il manquant ou le paramétrage erroné ou le réglage du mot de passe est-il incorrect? Aide moi.Comment créer et activer un utilisateur dans ldap en utilisant java?

 Attribute userCn = new BasicAttribute("cn", commonName); 
     Attribute samAccountName = new BasicAttribute("samAccountName",samaccountname); 
     Attribute userPassword = new BasicAttribute("userPassword",Password); 
     Attribute oc = new BasicAttribute("objectClass"); 
      oc.add("top"); 
      oc.add("person"); 
      oc.add("organizationalPerson"); 
      oc.add("user"); 
     Attributes entry = new BasicAttributes(true); 
     entry.put(userCn); 
     entry.put(samAccountName); 
     entry.put(oc); 
     entry.put(userPassword); 
String entryDN = "CN=" + userID.trim() + ",OU=abc,OU=def,DC=ghi,DC=jkl"; 
dirContext.createSubcontext(entryDN, entry); 

MISE À JOUR 1

Je reçois l'exception/erreur suivante lors de la mise à jour ou la modification de l'utilisateur pour définir le mot de passe d'un utilisateur et qui lui permet et je suis en utilisant connexion privée entre serveur ldap et mon environnement alors devrais-je besoin d'utiliser configurations SSL/TLS.

ErrorCode 53 et WILL_NOT_PERFORM

+0

quelle implémentation LDAP utilisez-vous et quel attribut dans le schéma détermine si un utilisateur est actif? – ipper

+0

pour la mise en œuvre ldap- "doit créer un utilisateur actif" et je ne sais pas l'attribut responsable de l'activer c'est pourquoi posté la question – rajatravigarg14

+0

Ce que je veux dire avec la mise en œuvre est ce que «marque», Active Directory, OpenLdap ou autre. Qu'est-ce qui vous indique qu'un utilisateur est désactivé? Utilisez-vous un client particulier? – ipper

Répondre

0

Afik, cela doit être dû au fait que vous définissez l'attribut "userPassword" qui n'est pas présent dans Microsoft Active Directory (par défaut). UnicodePwd est l'attribut de mot de passe dans Microsoft Active Directory et nécessite un codage "spécial" à partir de JNDI. Nous montrons un exemple dans ce source code. Par conséquent, les entrées utilisateur créées dans Microsoft Active Directory sans mot de passe sont désactivées par défaut.

De même, pour Microsoft Active Directory, vous devez MUST use SSL-TLS pour modifier le fichier unicodePwd.

Vous pouvez, mais ce n'est pas recommandé, Essayez de définir l'attribut userAccountControl = 544 sur l'entrée utilisateur créée sans unicodePwd. Vous devrez peut-être faire cela après la création.

+0

j'ai essayé votre code mais il me donne le code d'erreur 53 et "WILL_NOT_PERFORM" EXCEPTION – rajatravigarg14