Java ApacheDS中inetOrgPerson对象的成员属性

Java ApacheDS中inetOrgPerson对象的成员属性,java,ldap,apacheds,apache-directory,Java,Ldap,Apacheds,Apache Directory,我使用ApacheDS作为LDAP服务器。我需要一些组来管理不同应用程序的权限。例如,一个名为“jira用户”的组,可以登录到jira。因此,我需要一个属性,用于存储用户的成员组。我正在使用名为inetOrgPerson的objectClass,它似乎适合存储用户 在我过去工作的Active Directory中,我记得一个名为memberOf的属性。这似乎是特定于广告的,因为inetOrgPerson类有一个名为member的属性。根据文档,它也是这样做的:存储用户所属的组。但当我尝试将其添加

我使用ApacheDS作为LDAP服务器。我需要一些组来管理不同应用程序的权限。例如,一个名为“jira用户”的组,可以登录到jira。因此,我需要一个属性,用于存储用户的成员组。我正在使用名为inetOrgPerson的objectClass,它似乎适合存储用户

在我过去工作的Active Directory中,我记得一个名为memberOf的属性。这似乎是特定于广告的,因为inetOrgPerson类有一个名为member的属性。根据文档,它也是这样做的:存储用户所属的组。但当我尝试将其添加到inetOrgPerson对象时,Apache Directory studio中出现以下错误:

警告!根据方案,不允许使用此属性! 你还想用它吗

当我尝试按“是”时,出现以下异常:

费勒·贝姆·奥斯福伦·德尔迪夫 -[LDAP:错误代码65-对象\u类\u冲突:MessageType:MODIFY\u REQUES java.lang失败。异常:[LDAP:错误代码 65-对象\u类\u冲突:MessageType:MODIFY\u请求失败 消息ID:262 修改请求 对象:“cn=Testuser,ou=user,dc=example,dc=com” 修改[0] 操作:添加 修改成员:cn=Testgruppe,ou=user,dc=example,dc=comorg.apache.directory.api.ldap.model.message。ModifyRequestImpl@868031e2: ERR_277未在条目的ObjectClass中声明属性成员 cn=Testuser,ou=user,dc=example,dc=com]at org.apache.directory.studio.connection.core.io.api.DirectoryApiConnectionWrapper.checkResponse(DirectoryApiConnectionWrapper.java:1268) 在 org.apache.directory.studio.connection.core.io.api.DirectoryApiConnectionWrapper.access$9(DirectoryApiConnectionWrapper.java:1236) 在 org.apache.directory.studio.connection.core.io.api.DirectoryApiConnectionWrapper$4.run(DirectoryApiConnectionWrapper.java:716) 在 org.apache.directory.studio.connection.core.io.api.DirectoryApiConnectionWrapper.runAndMonitor(DirectoryApiConnectionWrapper.java:1163) 在 org.apache.directory.studio.connection.core.io.api.DirectoryApiConnectionWrapper.checkconnectionandrunadmonitor(DirectoryApiConnectionWrapper.java:1099) 在 org.apache.directory.studio.connection.core.io.api.DirectoryApiConnectionWrapper.modifyEntry(DirectoryApiConnectionWrapper.java:738) 在 org.apache.directory.studio.ldapbrowser.core.jobs.ImportLdifRunnable.importLdifRecord(ImportLdifRunnable.java:515) 在 org.apache.directory.studio.ldapbrowser.core.jobs.ImportLdifRunnable.importLdif(ImportLdifRunnable.java:272) 在 org.apache.directory.studio.ldapbrowser.core.jobs.ExecuteLdifRunnable.executeLdif(ExecuteLdifRunnable.java:157) 在 org.apache.directory.studio.ldapbrowser.core.jobs.ExecuteLdifRunnable.run(ExecuteLdifRunnable.java:123) 在 org.apache.directory.studio.ldapbrowser.core.jobs.UpdateEntryRunnable.run(UpdateEntryRunnable.java:59) 在 org.apache.directory.studio.connection.ui.RunnableContextRunner$1.run(RunnableContextRunner.java:116) 在 org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:119)

[LDAP:错误代码65-对象\u类\u冲突:失败 MessageType:MODIFY_请求消息ID:262 修改请求 对象:“cn=Testuser,ou=user,dc=example,dc=com” 修改[0] 操作:添加 修改成员:cn=Testgruppe,ou=user,dc=example,dc=comorg.apache.directory.api.ldap.model.message。ModifyRequestImpl@868031e2: ERR_277未在条目的ObjectClass中声明属性成员 cn=Testuser,ou=user,dc=example,dc=com]


我试着像这里用ldapadd描述的那样添加它。这没有给我任何错误,当我查看ou=schema、cn=other、ou=objectClasses时,我看到了插入的值。但是当我创建一个新的inetOrgPerson时,没有可能使用它!我做错了什么?

实际上
成员属性类型没有“存储用户所属的组”,相反,它包含列表或组中对象的可分辨名称

inetOrgPerson
对象类不包含也不应该包含任何“member”属性,
groupOfNames
包含甚至需要它,因为它表示存储在“member”属性中的一组命名对象

(见,)

我想您想要的是将memberOf属性添加到inetOrgPerson。为此,您需要定义“memberOf”属性类型并编辑架构中的inetOrgPerson对象类。必须首先添加属性类型,因为对象类引用它

(另见:)