0

我正在尝试使用 Spring LDAPTemplate 控制 OpenLDAP。

在 LDAP 中,我有组和用户组织单位。我正在尝试使用组关联将新用户绑定到 LDAP。(通用用户帐户)因此,当我尝试绑定新用户时,我还将gidNumberattiribute 放入属性对象中。但我收到这样的错误:

[LDAP: error code 65 - attribute 'gidNumber' not allowed]; nested exception is javax.naming.directory.SchemaViolationException: [LDAP: error code 65 - attribute 'gidNumber' not allowed]; remaining name 'ou=staff'

这是我到目前为止所尝试的:

DistinguishedName dn = new DistinguishedName();
dn.add("ou", "staff");
Attributes attributes = new BasicAttributes();
attributes.put("objectClass", "inetOrgPerson");
attributes.put("uid", username);
attributes.put("givenName", name);
attributes.put("gidNumber", gidNumber.toString());
attributes.put("sn", surname);
attributes.put("cn", name + " " + surname);
attributes.put("userPassword", password);
ldapTemplate.bind(dn, null, attributes);

这是我的架构:

+--> dc=ibu,dc=edu,dc=tr (5)
  ---> cn=admin
  +--> ou=group (1)
    | ---> cn=Academic
  ---> ou=guest
  +--> ou=staff (2)
    | ---> cn=John Clark
  ---> ou=student
4

2 回答 2

0

You have to add another object class called posixAccount. Because the attribute gidNumber belongs to this class. So try adding one more object class as follows:

attributes.put("objectClass", "posixAccount");
于 2012-12-13T10:24:24.290 回答
0

一个 LDAP 条目必须只有一个且只有一个结构对象类。不过,一些损坏的服务器确实允许多个结构对象类。添加结构对象类(要添加的对象类取决于条目的用途)。

于 2012-12-13T16:31:25.363 回答