Java LDAP-无法创建具有国家/地区的新人员
我正在尝试在LDAP(Apache目录服务器)中创建一个新的Person条目。我可以创建一个没有country对象类的person,如下所示Java LDAP-无法创建具有国家/地区的新人员,java,apache,ldap,Java,Apache,Ldap,我正在尝试在LDAP(Apache目录服务器)中创建一个新的Person条目。我可以创建一个没有country对象类的person,如下所示 dn[n]: uid=dduck,ou=people,dc=example,dc=com objectClass: top objectClass: person objectClass: organizationalPerson obj
dn[n]: uid=dduck,ou=people,dc=example,dc=com
objectClass: top
objectClass: person
objectClass: organizationalPerson
objectClass: inetOrgPerson
uid: dduck
sn: Duck
cn: Donal Duck
但我也想给这个人加上一个国家。因此,我添加了country objectClass,如下所示
dn[n]: uid=dduck,ou=people,dc=example,dc=com
objectClass: country
objectClass: top
objectClass: person
objectClass: organizationalPerson
objectClass: inetOrgPerson
uid: dduck
sn: Duck
c: FR
cn: Donal Duck
但它失败了,有以下错误,你知道吗
错误消息
Error while creating entry
- [LDAP: error code 65 - OBJECT_CLASS_VIOLATION: failed for MessageType : ADD_REQUES
java.lang.Exception: [LDAP: error code 65 - OBJECT_CLASS_VIOLATION: failed for MessageType : ADD_REQUEST
Message ID : 26
Add Request :
Entry
dn[n]: uid=dduck,ou=people,dc=example,dc=com
objectClass: country
objectClass: top
objectClass: person
objectClass: organizationalPerson
objectClass: inetOrgPerson
uid: dduck
sn: Duck
c: FR
cn: Donal Duck
: ERR_61 Entry uid=dduck,ou=people,dc=example,dc=com contains more than one STRUCTURAL ObjectClass: [OBJECT_CLASS ( 2.16.840.1.113730.3.2.2
NAME 'inetOrgPerson'
DESC RFC2798: Internet Organizational Person
SUP 'organizationalPerson'
STRUCTURAL
MAY ( 'audio' $ 'businessCategory' $ 'carLicense' $ 'departmentNumber' $ 'displayName' $ 'employeeNumber' $ 'employeeType' $ 'givenName' $ 'homePhone' $ 'homePostalAddress' $ 'initials' $ 'jpegPhoto' $ 'labeledURI' $ 'mail' $ 'manager' $ 'mobile' $ 'o' $ 'pager' $ 'photo' $ 'roomNumber' $ 'secretary' $ 'uid' $ 'userCertificate' $ 'x500UniqueIdentifier' $ 'preferredLanguage' $ 'userSMIMECertificate' $ 'userPKCS12' )
)
, OBJECT_CLASS ( 2.5.6.2
NAME 'country'
DESC RFC2256: a country
SUP 'top'
STRUCTURAL
MUST 'c'
MAY ( 'searchGuide' $ 'description' )
)
]]
at org.apache.directory.studio.connection.core.io.api.DirectoryApiConnectionWrapper.checkResponse(DirectoryApiConnectionWrapper.java:1280)
at org.apache.directory.studio.connection.core.io.api.DirectoryApiConnectionWrapper.access$600(DirectoryApiConnectionWrapper.java:109)
at org.apache.directory.studio.connection.core.io.api.DirectoryApiConnectionWrapper$6.run(DirectoryApiConnectionWrapper.java:928)
at org.apache.directory.studio.connection.core.io.api.DirectoryApiConnectionWrapper.runAndMonitor(DirectoryApiConnectionWrapper.java:1175)
at org.apache.directory.studio.connection.core.io.api.DirectoryApiConnectionWrapper.checkConnectionAndRunAndMonitor(DirectoryApiConnectionWrapper.java:1109)
at org.apache.directory.studio.connection.core.io.api.DirectoryApiConnectionWrapper.createEntry(DirectoryApiConnectionWrapper.java:950)
at org.apache.directory.studio.ldapbrowser.core.jobs.CreateEntryRunnable.createEntry(CreateEntryRunnable.java:224)
at org.apache.directory.studio.ldapbrowser.core.jobs.CreateEntryRunnable.run(CreateEntryRunnable.java:124)
at org.apache.directory.studio.connection.ui.RunnableContextRunner$1.run(RunnableContextRunner.java:112)
at org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:121)
[LDAP: error code 65 - OBJECT_CLASS_VIOLATION: failed for MessageType : ADD_REQUEST
Message ID : 26
Add Request :
Entry
dn[n]: uid=dduck,ou=people,dc=example,dc=com
objectClass: country
objectClass: top
objectClass: person
objectClass: organizationalPerson
objectClass: inetOrgPerson
uid: dduck
sn: Duck
c: FR
cn: Donal Duck
: ERR_61 Entry uid=dduck,ou=people,dc=example,dc=com contains more than one STRUCTURAL ObjectClass: [OBJECT_CLASS ( 2.16.840.1.113730.3.2.2
NAME 'inetOrgPerson'
DESC RFC2798: Internet Organizational Person
SUP 'organizationalPerson'
STRUCTURAL
MAY ( 'audio' $ 'businessCategory' $ 'carLicense' $ 'departmentNumber' $ 'displayName' $ 'employeeNumber' $ 'employeeType' $ 'givenName' $ 'homePhone' $ 'homePostalAddress' $ 'initials' $ 'jpegPhoto' $ 'labeledURI' $ 'mail' $ 'manager' $ 'mobile' $ 'o' $ 'pager' $ 'photo' $ 'roomNumber' $ 'secretary' $ 'uid' $ 'userCertificate' $ 'x500UniqueIdentifier' $ 'preferredLanguage' $ 'userSMIMECertificate' $ 'userPKCS12' )
)
, OBJECT_CLASS ( 2.5.6.2
NAME 'country'
DESC RFC2256: a country
SUP 'top'
STRUCTURAL
MUST 'c'
MAY ( 'searchGuide' $ 'description' )
)
]]
不能组合两个结构对象类。这就像一个单一的继承规则。但是,您可以添加“extensibleObject”而不是“country”,然后可以使用“c”属性。非常感谢。我会尝试extensibleObject。这是增加一个国家的常规方法吗?或者还有其他更好的方法吗?那就是“常规方法”“添加不在正在使用的其他对象类的架构中的任何属性。如果有更好的方法我不知道。我很好奇,“c”不是任何其他标准对象类的成员,例如“person”或其后代。谢谢,我能够使用“extensibleObject”添加国家/地区。