Bonjour,
Je fais des mises à jour sur l'annuaire Active directory via une appli java. Pour l'instant tout fonctionne sauf lorsque je souhaites supprimer la valeur (vider le champs) d'un attribut d'un compte déjà existant.
Voila mon bout de code :
Si la valeur que je veux envoyer dans mon attribut est nulle ou chaine vide, alors je fais un REMOVE_ATTRIBUTE sinon je fais un REPLACE_ATTRIBUTE. Dans la variable "attribut" j'ai le nom de l'attribut.
Lorsque j'arrive dans le cas ou valeur est null ou vaut chaine vide ca me retourne le message d'erreur suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 if ((valeur == null) || (String.valueOf(valeur).trim().equals(""))) { mods[0] = new ModificationItem(DirContext.REMOVE_ATTRIBUTE, new BasicAttribute(attribut)); } else mods[0] = new ModificationItem(DirContext.REPLACE_ATTRIBUTE, new BasicAttribute(attribut, valeur.toString())); _ctx.modifyAttributes(distinguishedName, mods);
Code 16 signifiant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part javax.naming.directory.NoSuchAttributeException: [LDAP: error code 16 - 00002076: AtrErr: DSID-030F1145, #1: 0: 00002076: DSID-030F1145, problem 1001 (NO_ATTRIBUTE_OR_VAL), data 0, Att 15002a (pager)Par contre si je fais REPLACE_ATTRIBUTE dans le cas ou "valeur" est null ou chaine vide j'obtiens l'erreur suivante :LDAP_NO_SUCH_ATTRIBUTE: Indicates that the attribute specified in the modify or compare operation does not exist in the entry.
Code 21 signifiant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 javax.naming.directory.InvalidAttributeValueException: [LDAP: error code 21 - 00000057: LdapErr: DSID-0C090A85, comment: Error in attribute conversion operation, data 0, vece
Je ne comprends pas ce qui cloche, surtout que mon code fonctionne lorsque la valeur à remplacer n'est pas nulle ou contient des caractères.LDAP_INVALID_SYNTAX: Indicates that the attribute value specified in an add, compare, or modify operation is an unrecognized or invalid syntax for the attribute.
Si vous connaissez le problème et/ou que vous avez un bout de code qui pourrait me servir d'exemple je suis prenneur !
Merci
Partager