我正在尝试在我的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 =某事结束.