2010-11-18 59 views
4

我想在我的廣告來創建一些本地組,但可悲的是,如果我設置我的背景下GroupType屬性,我只收到這個異常創建組JDNI Active Directory中,有範圍

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 

這是可能的該屬性的值是錯誤的。或者我的問題無法解決?

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); 
    } 

對於claryfication:我直接從活動目錄得到這個值-2147483646。正如你可以提到我正在使用Spring Ldap 1.3

回答

5

嘗試將groupType的值作爲字符串傳遞的時間不長。這應該可以解決你的問題。

但是您使用的DN看起來很奇怪。根據我的經驗,AD中的所有專有名稱都以DC =結尾。

+0

有時它看起來更容易。爲此歡呼。 – onigunn 2010-11-19 06:44:34