2010-11-18 7 views
4

Je suis en train de créer des groupes locaux dans mon annonce, mais malheureusement si je mets un attribut groupType dans mon contexte, je ne recevoir que cette exceptionJDNI Active Directory, la création de groupes avec une portée

Caused by: javax.naming.directory.InvalidAttributeValueException: Malformed 'groupType' attribute value; remaining name 'cn=localTestGroup1,ou=groups' 
     at com.sun.jndi.ldap.LdapClient.encodeAttribute(LdapClient.java:951) 
     at com.sun.jndi.ldap.LdapClient.add(LdapClient.java:999) 
     at com.sun.jndi.ldap.LdapCtx.c_bind(LdapCtx.java:393) 
     at com.sun.jndi.toolkit.ctx.ComponentDirContext.p_bind(ComponentDirContext.java:277) 
     at com.sun.jndi.toolkit.ctx.PartialCompositeDirContext.bind(PartialCompositeDirContext.java:197) 
     at javax.naming.directory.InitialDirContext.bind(InitialDirContext.java:163) 
     at org.springframework.ldap.core.LdapTemplate$21.executeWithContext(LdapTemplate.java:998) 
     at org.springframework.ldap.core.LdapTemplate.executeWithContext(LdapTemplate.java:807) 
     ... 36 more 

Il est possible que la valeur de l'attribut est fausse. Ou mon problème n'est-il pas soluble?

private void createGroup(String groupname, String groupOU, long groupType) { 
     DistinguishedName dn = new DistinguishedName(); 
     dn.add("ou", groupOU); 
     dn.add("cn", groupname); 

     DirContextAdapter ctx = new DirContextAdapter(dn); 
     ctx.setAttributeValues("objectclass", new String[] { "top", "group" }); 
     ctx.setAttributeValue("groupType", groupType); 
     ctx.setAttributeValue("sAMAccountName", groupname); 

     ldapTemplate.bind(ctx); 
    } 

    public void createLocalGroup(String groupname, String groupOU) { 
     createGroup(groupname, groupOU, -2147483646); 
    } 

Pour claryfication: J'ai eu cette valeur -2147483646 directement à partir du répertoire actif. Comme vous pouvez le mentionner, j'utilise Spring Ldap 1.3

Répondre

5

Essayez de passer la valeur de groupType comme chaîne pas aussi longue. Cela devrait résoudre votre problème. Cependant, le DN que vous utilisez semble étrange. Dans mon expérience tous les noms distingués dans AD se termine à DC = quelque chose.

+0

Parfois, c'est plus facile que ça. Bravo pour ça. – onigunn

Questions connexes