Bonjour,
Je ne suis pas sûr d'avoir bien saisi votre question. J'espère donc que les éléments ci-dessous y répondront...
Imaginons un groupe RH, avec le membre "John Smith" :
cn=rh,ou=Groups,dc=company,dc=com
displayName: Ressources Humaines
memberUid: johnsmith
Cas 1 : son nom change dans le LDAP, mais le dn est toujous le même :
cn=rh,ou=Groups,dc=company,dc=com
displayName: Département des Ressources Humaines
memberUid: johnsmith
JCMS fait automatiquement la modification, il n'y a qu'un seul groupe RH dans JCMS.
Cas 2 : son dn est complètement modifié
cn=DRH,ou=Groups,dc=company,dc=com
displayName: Département des Ressources Humaines
memberUid: johnsmith
Il ne s'agit plus du même groupe ! un dn est justement dans le LDAP pour servir d'identifiant unique.
JCMS se base sur le DN pour retrouver un groupe déjà synchronisé, conséquence : lors de sa prochaine connexion, johnsmith appartiendra au nouveau groupe, plus à l'ancien. C'est le comportement normal et attendu.
Si vous devez gérer ce genre de modification de structure, il faut intervenir dans le code (ouvert) de custom.LdapAuthenticationHandler afin de gérer la recherche d'un groupe non plus par son DN, mais par autre identifiant unique de votre connaissance...
cf utilisation de la méthode channel.getGroupFromDN(..) dans la classe ci-dessus.
Je vous recommande alors le stockage de cette information supplémentaire dans une extradata.