2017-09-21 9 views
0

J'ai des problèmes de mise à jour des groupes dans Active Directory avec> 1500 membres. Il essaie seulement de modifier l'attribut de membre.Printemps groupe de mise à jour ldaptemplate avec problème d'appartenance important

Je n'ai aucun problème à mettre à jour les groupes avec moins de membres. Je peux aussi ajouter un nouveau groupe avec beaucoup de membres.

Cependant, si elle est trop grande, la mise à jour échoue. Je peux essayer de mettre à jour le grand groupe à un seul membre et il échoue toujours avec la même erreur.

code

échoue sur la ligne modifyAttributes:

ModificationItem[] modList = 
nameContext.getDirContextAdapter().getModificationItems(); 

writeADTemplate.modifyAttributes(nameContext.getName(),modList); 

StackTrace Ci-dessous:

org.springframework.ldap.NameAlreadyBoundException: [LDAP: error code 68 - 
00000562: UpdErr: DSID-031A122A, problem 6005 (ENTRY_EXISTS), data 0 
nested exception is javax.naming.NameAlreadyBoundException: [LDAP: error 
code 68 - 00000562: UpdErr: DSID-031A122A, problem 6005 (ENTRY_EXISTS), data 0 
remaining name 'cn=Atlassian Users,ou=Groups' 
at org.springframework.ldap.support.LdapUtils.convertLdapException 
(LdapUtils.java:169) 
at org.springframework.ldap.core.LdapTemplate.executeWithContext 
(LdapTemplate.java:810) 
at 
org.springframework.ldap.core.LdapTemplate.executeReadWrite 
(LdapTemplate.java:802) 
at org.springframework.ldap.core.LdapTemplate.modifyAttributes 
(LdapTemplate.java:967) 
more ... 
Caused by: javax.naming.NameAlreadyBoundException: [LDAP: error code 68 - 
00000562: UpdErr: DSID-031A122A, problem 6005 (ENTRY_EXISTS), data 0 
remaining name 'cn=Atlassian Users,ou=Groups' 
at com.sun.jndi.ldap.LdapCtx.mapErrorCode(Unknown Source) 
at com.sun.jndi.ldap.LdapCtx.processReturnCode(Unknown Source) 
at com.sun.jndi.ldap.LdapCtx.processReturnCode(Unknown Source) 
at com.sun.jndi.ldap.LdapCtx.c_modifyAttributes(Unknown Source) 
at com.sun.jndi.toolkit.ctx.ComponentDirContext.p_modifyAttributes(Unknown 
Source) 
at 
com.sun.jndi.toolkit.ctx.PartialCompositeDirContext.modifyAttributes(Unknown 
Source) 
at javax.naming.directory.InitialDirContext.modifyAttributes(Unknown Source) 
at 
org.springframework.ldap.core.LdapTemplate$19.executeWithContext 
(LdapTemplate.java:969) 
at 
org.springframework.ldap.core.LdapTemplate.executeWithContext 
(LdapTemplate.java:807) 
... 88 more 

Répondre

0

Ok mon vrai problème est que Active Directory ne renvoie pas un attribut de plusieurs valeurs comme membre si les valeurs> 1500 Lorsque je recevais les membres actuels du groupe, il s'agissait de renvoyer des valeurs 0, mon code essayait donc d'ajouter tous les membres au groupe.

On dirait que je vais devoir comprendre comment utiliser DefaultIncrementalAttributesMapper pour obtenir tous les membres

+0

alors vous devriez envisager de supprimer votre question ... –