Ana*_*and 3 java ldap openldap
我试图使用命令在我的OpenLDAP实例中从Oracle的JNDI教程导入以下示例:
ldapadd -x -D cn=admin,dc=example,dc=com -W -f refserver.ldif
Run Code Online (Sandbox Code Playgroud)
在哪里,refserver.ldif
看起来像这样:
dn: o=JNDITutorial,dc=example,dc=com
o: JNDITutorial
objectclass: top
objectclass: organization
dn: ou=All, o=JNDITutorial,dc=example,dc=com
ou: All
objectclass: top
objectclass: organizationalunit
dn: ou=People, o=JNDITutorial,dc=example,dc=com
ou: People
objectclass: top
objectclass: organizationalunit
objectclass: referral
ref: ldap://10.97.98.201:389/ou=People,o=JNDITutorial
dn: ou=People, ou=All, o=JNDITutorial,dc=example,dc=com
ou: People
objectclass: top
objectclass: organizationalunit
objectclass: referral
ref: ldap://10.97.98.201:389/ou=People,o=JNDITutorial
dn: ou=NewHires, ou=All, o=JNDITutorial,dc=example,dc=com
ou: NewHires
objectclass: top
objectclass: organizationalunit
objectclass: referral
ref: ldap://10.97.98.201:389/ou=NewHires,o=JNDITutorial
Run Code Online (Sandbox Code Playgroud)
这取得了部分成功,报告了以下内容:
adding new entry "o=JNDITutorial,dc=example,dc=com"
adding new entry "ou=All, o=JNDITutorial,dc=example,dc=com"
adding new entry "ou=People, o=JNDITutorial,dc=example,dc=com"
ldap_add: Object class violation (65)
additional info: invalid structural object class chain (organizationalUnit/referral)
Run Code Online (Sandbox Code Playgroud)
我试图从这里读起原因.但是,原因和解决方案对我来说有点不清楚.有人可以对此有所了解并建议补救措施吗?
提前致谢!
解释非常简单,当您在LDAP目录中创建对象时,此对象必须具有SINGLE 结构类.在你的情况下,你提到两个结构类organizationalunit
和referal
.
做你想做的事的正确方法是使用结构类和辅助类.
extensibleObject
是一个辅助类,允许您使用您想要的任何属性.
这是一个例子
dn: ou=MyOU,ou=Monou,dc=societe,dc=com
objectClass: referral
objectClass: top
objectClass: extensibleObject
ou: MyOU
ref:: bGRhcDovLzEwLjk3Ljk4LjIwMTozODkvb3U9UGVvcGxlLG89Sk5ESVR1dG9yaWFsIA==
Run Code Online (Sandbox Code Playgroud)
备注:在这里您可以看到LDAP URL在base64中编码(由::)引入,最好以LDIF格式执行.Apache Directory Studio是一个开源产品,允许您测试OpenLdap图形(您可以在B64转换器中找到),此工具可以生成您的LDIF文件.
归档时间: |
|
查看次数: |
6629 次 |
最近记录: |