JDNI Active Directory, создание групп с областью действия - PullRequest
4 голосов
/ 18 ноября 2010

Я пытаюсь создать некоторые локальные группы в моей 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);
    }

Для уточнения: я получил это значение -2147483646 непосредственно из активного каталога.Как вы можете заметить, я использую Spring Ldap 1.3

1 Ответ

5 голосов
/ 18 ноября 2010

Попробуйте передать значение для groupType как String не так долго. Это должно решить вашу проблему.

Однако используемый вами DN выглядит странно. По моему опыту, все отличительные имена в AD заканчиваются на DC = что-то.

...