![](/img/trans.png)
[英]ApacheDS - How to create a new user with Java JNDI and setting the password?
[英]apacheDS unable to create new entry
我正在使用Apache Directory Studio 2.0.0
和ApacheDS 2.0
。 在创建一个新的分区o=SevenSeans,dc=com
,如http://directory.apache.org/apacheds/basic-ug/1.4.3-adding-partition.html中所述,我正在尝试创建一个新条目。 我选择objectClass organizationalPerson
并输入parent o=SevenSeans,dc=com
,RDN uid=Name
。 然后我单击下一步并键入cn
和sn
属性的值。 现在我点击完成并有例外:
Error while creating entry
- [LDAP: error code 65 - OBJECT_CLASS_VIOLATION: failed for MessageType : ADD_REQUES
javax.naming.directory.SchemaViolationException: [LDAP: error code 65 - OBJECT_CLASS_VIOLATION: failed for MessageType : ADD_REQUEST
Message ID : 19
Add Request :
Entry
dn[n]: uid=Name,o=SevenSeans,dc=com
objectclass: domain
objectclass: top
objectclass: extensibleObject
objectclass: organizationalPerson
objectclass: person
uid: Name
dc: SevenSeans
sn: sf
cn: s
: ERR_61 Entry uid=Name,o=SevenSeans,dc=com contains more than one STRUCTURAL ObjectClass: [OBJECT_CLASS ( 0.9.2342.19200300.100.4.13
NAME 'domain'
SUP 'top'
STRUCTURAL
MUST 'dc'
MAY ( 'associatedName' $ 'o' $ 'description' $ 'businessCategory' $ 'seeAlso' $ 'searchGuide' $ 'userPassword' $ 'l' $ 'st' $ 'street' $ 'physicalDeliveryOfficeName' $ 'postalAddress' $ 'postalCode' $ 'postOfficeBox' $ 'facsimileTelephoneNumber' $ 'internationaliSDNNumber' $ 'telephoneNumber' $ 'teletexTerminalIdentifier' $ 'telexNumber' $ 'preferredDeliveryMethod' $ 'destinationIndicator' $ 'registeredAddress' $ 'x121Address' )
)
, OBJECT_CLASS ( 2.5.6.7
NAME 'organizationalPerson'
DESC RFC2256: an organizational person
SUP 'person'
STRUCTURAL
MAY ( 'title' $ 'x121Address' $ 'registeredAddress' $ 'destinationIndicator' $ 'preferredDeliveryMethod' $ 'telexNumber' $ 'teletexTerminalIdentifier' $ 'telephoneNumber' $ 'internationaliSDNNumber' $ 'facsimileTelephoneNumber' $ 'street' $ 'postOfficeBox' $ 'postalCode' $ 'postalAddress' $ 'physicalDeliveryOfficeName' $ 'ou' $ 'st' $ 'l' )
)
]]; remaining name 'uid=Name,o=SevenSeans,dc=com'
at com.sun.jndi.ldap.LdapCtx.mapErrorCode(Unknown Source)
at com.sun.jndi.ldap.LdapCtx.processReturnCode(Unknown Source)
at com.sun.jndi.ldap.LdapCtx.processReturnCode(Unknown Source)
at com.sun.jndi.ldap.LdapCtx.c_createSubcontext(Unknown Source)
at com.sun.jndi.toolkit.ctx.ComponentDirContext.p_createSubcontext(Unknown Source)
at com.sun.jndi.toolkit.ctx.PartialCompositeDirContext.createSubcontext(Unknown Source)
at org.apache.directory.studio.connection.core.io.jndi.JNDIConnectionWrapper$4.run(JNDIConnectionWrapper.java:669)
at org.apache.directory.studio.connection.core.io.jndi.JNDIConnectionWrapper.runAndMonitor(JNDIConnectionWrapper.java:1305)
at org.apache.directory.studio.connection.core.io.jndi.JNDIConnectionWrapper.checkConnectionAndRunAndMonitor(JNDIConnectionWrapper.java:1237)
at org.apache.directory.studio.connection.core.io.jndi.JNDIConnectionWrapper.createEntry(JNDIConnectionWrapper.java:722)
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 : 19
Add Request :
Entry
dn[n]: uid=Name,o=SevenSeans,dc=com
objectclass: domain
objectclass: top
objectclass: extensibleObject
objectclass: organizationalPerson
objectclass: person
uid: Name
dc: SevenSeans
sn: sf
cn: s
: ERR_61 Entry uid=Name,o=SevenSeans,dc=com contains more than one STRUCTURAL ObjectClass: [OBJECT_CLASS ( 0.9.2342.19200300.100.4.13
NAME 'domain'
SUP 'top'
STRUCTURAL
MUST 'dc'
MAY ( 'associatedName' $ 'o' $ 'description' $ 'businessCategory' $ 'seeAlso' $ 'searchGuide' $ 'userPassword' $ 'l' $ 'st' $ 'street' $ 'physicalDeliveryOfficeName' $ 'postalAddress' $ 'postalCode' $ 'postOfficeBox' $ 'facsimileTelephoneNumber' $ 'internationaliSDNNumber' $ 'telephoneNumber' $ 'teletexTerminalIdentifier' $ 'telexNumber' $ 'preferredDeliveryMethod' $ 'destinationIndicator' $ 'registeredAddress' $ 'x121Address' )
)
, OBJECT_CLASS ( 2.5.6.7
NAME 'organizationalPerson'
DESC RFC2256: an organizational person
SUP 'person'
STRUCTURAL
MAY ( 'title' $ 'x121Address' $ 'registeredAddress' $ 'destinationIndicator' $ 'preferredDeliveryMethod' $ 'telexNumber' $ 'teletexTerminalIdentifier' $ 'telephoneNumber' $ 'internationaliSDNNumber' $ 'facsimileTelephoneNumber' $ 'street' $ 'postOfficeBox' $ 'postalCode' $ 'postalAddress' $ 'physicalDeliveryOfficeName' $ 'ou' $ 'st' $ 'l' )
)
]]
如果我使用import->LDIF
并选择captain-hook-hierarchy.ldif
Error while importing LDIF
- [LDAP: error code 32 - NO_SUCH_OBJECT: failed for MessageType : ADD_REQUES
javax.naming.NameNotFoundException: [LDAP: error code 32 - NO_SUCH_OBJECT: failed for MessageType : ADD_REQUEST
Message ID : 20
Add Request :
Entry
dn[n]: ou=people,o=sevenSeas
objectclass: organizationalUnit
objectclass: top
ou: people
: ERR_268 Cannot find a partition for ou=people,o=sevenSeas]; remaining name 'ou=people,o=sevenSeas'
at com.sun.jndi.ldap.LdapCtx.mapErrorCode(Unknown Source)
at com.sun.jndi.ldap.LdapCtx.processReturnCode(Unknown Source)
at com.sun.jndi.ldap.LdapCtx.processReturnCode(Unknown Source)
at com.sun.jndi.ldap.LdapCtx.c_createSubcontext(Unknown Source)
at com.sun.jndi.toolkit.ctx.ComponentDirContext.p_createSubcontext(Unknown Source)
at com.sun.jndi.toolkit.ctx.PartialCompositeDirContext.createSubcontext(Unknown Source)
at org.apache.directory.studio.connection.core.io.jndi.JNDIConnectionWrapper$4.run(JNDIConnectionWrapper.java:669)
at org.apache.directory.studio.connection.core.io.jndi.JNDIConnectionWrapper.runAndMonitor(JNDIConnectionWrapper.java:1305)
at org.apache.directory.studio.connection.core.io.jndi.JNDIConnectionWrapper.checkConnectionAndRunAndMonitor(JNDIConnectionWrapper.java:1237)
at org.apache.directory.studio.connection.core.io.jndi.JNDIConnectionWrapper.createEntry(JNDIConnectionWrapper.java:722)
at org.apache.directory.studio.ldapbrowser.core.jobs.ImportLdifRunnable.importLdifRecord(ImportLdifRunnable.java:464)
at org.apache.directory.studio.ldapbrowser.core.jobs.ImportLdifRunnable.importLdif(ImportLdifRunnable.java:272)
at org.apache.directory.studio.ldapbrowser.core.jobs.ImportLdifRunnable.run(ImportLdifRunnable.java:218)
at org.apache.directory.studio.connection.core.jobs.StudioConnectionJob.run(StudioConnectionJob.java:109)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
[LDAP: error code 32 - NO_SUCH_OBJECT: failed for MessageType : ADD_REQUEST
Message ID : 20
Add Request :
Entry
dn[n]: ou=people,o=sevenSeas
objectclass: organizationalUnit
objectclass: top
ou: people
: ERR_268 Cannot find a partition for ou=people,o=sevenSeas]
我该如何解决? 如果我选择top
话,可以创建新的条目。
该教程存在许多问题(拼写,UI看起来不同等),但我已设法导入示例数据并添加新条目。
出于这个原因发生错误: com contains more than one STRUCTURAL ObjectClass
。 发生这种情况是因为domain
和organizationalPerson
都是结构性的,不能一起工作,尝试删除domain
。 有关更多信息,请参阅LDAP objectClasses
要导入captain-hook-hierarchy.ldif
首先需要创建一个新分区。 该教程与命名约定不一致,是导致错误的原因。 创建一个新分区:
ID:SevenSeas
Suffix: o=sevenSeas
您得到的错误是因为教程中的,dc=com
。 如果你打开.ldif,你会看到没有引用,dc=com
。
接下来,取消选中Auto-generate context entry from suffix DN
的Auto-generate context entry from suffix DN
复选框。 它没有为示例创建适当的属性。 然后添加以下属性:
o: sevenSeas
objectClass: top
objectClass: organization
description: The context entry for suffix o=sevenSeas
保存config.ldif文件并重新启动服务器。 然后导入captain-hook-hierarchy.ldif
。 该目录应该填充并添加新条目,只需右键单击一个组并Add new entry
。
希望这可以帮助!
我无法发表评论,所以......
Sionnach733:条目中不能有2个结构ObjectClass, 除非它们具有继承关系。 例如,OrganizationalPerson继承Person,这样你就可以同时在一个条目(即使添加OrganizationalPerson只意味着人也隐含在添加条目)。
而且,是的,这些规则有点愚蠢......
我修复了教程( http://directory.staging.apache.org/apacheds/basic-ug/1.4.3-adding-partition.html,以便任何想要在http://上查看真实网站之前的更改的人directory.apache.org/apacheds/basic-ug/1.4.3-adding-partition.html已上线 - 这将需要几个小时)。
谢谢你的报道! 创建一个带有错字描述的JIRA会更方便(补丁更好!网站是基于文本的(降价),可在http://svn.apache.org/repos/asf/上找到目录/站点/主干/内容/ )
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.