java – JDNI Active Directory,创建具有范围的组

我正在尝试在我的AD中创建一些本地组但遗憾的是如果我在上下文中设置了groupType属性,我只会收到此异常

 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

解决方法:

尝试将groupType的值作为String传递不长.这应该可以解决您的问题.

但是你使用的DN看起来很奇怪.根据我的经验,AD中的所有杰出名称都以DC =某事结束.

上一篇:java – 使用JNDI添加LDAP条目


下一篇:mysql – JNDI和javax.sql.DataSource