[JNDI][LDAP] Suppression valeur d'un attribut
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.
Code:
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); |
Lorsque j'arrive dans le cas ou valeur est null ou vaut chaine vide ca me retourne le message d'erreur suivant :
Code:
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)
Code 16 signifiant :
Citation:
LDAP_NO_SUCH_ATTRIBUTE: Indicates that the attribute specified in the modify or compare operation does not exist in the entry.
Par contre si je fais REPLACE_ATTRIBUTE dans le cas ou "valeur" est null ou chaine vide j'obtiens l'erreur suivante :
Code:
1 2
|
javax.naming.directory.InvalidAttributeValueException: [LDAP: error code 21 - 00000057: LdapErr: DSID-0C090A85, comment: Error in attribute conversion operation, data 0, vece |
Code 21 signifiant :
Citation:
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.
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.
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