如何解决python-ldap:如何修复b'ldapadd:无效格式第1行条目:“” \ n'
我想创建一个ldap测试服务器。因此,我用ldapsearch
转储了ldap数据,并创建了一个.ldif
文件。现在,我想用此数据创建一个测试ldap服务器。我想使用python-ldap
中的slapdtest
-module。
import slapdtest
with slapdtest.Slapdobject() as server:
server.ldapadd("ldap_dump.ldif")
server.start()
但是我收到错误消息:
RuntimeError: ['/usr/bin/ldapadd','-H','ldapi://../python-ldap-test-53974/ldapi','-Y','EXTERNAL','-Q','-n'] process Failed:
b''
b'ldapadd: invalid format (line 1) entry: ""\n'
$file ldap_dump.ldif
返回ldap_dump.ldif: ASCII text
。因此,实际上行尾应该不是问题。
这是我缩小的ldap_dump文件:
dn: cn=User,dc=institute.edu
sn: User
objectClass: top
objectClass: user
cn: User
解决方法
错误的直接原因是ldapadd
方法希望接收LDIF格式的内容,但是您正在向其传递文件名。所以你想要更多类似的东西:
with slapdtest.SlapdObject() as server:
with open('ldap_dump.ldif') as fd:
server.ldapadd(fd.read())
您似乎是在{em之后server.start()
呼叫ldapadd
dc=institute.edu
,我认为您需要相反的顺序。
最后,您的示例文件可能无效,因为它没有定义更高级别的容器(例如Book
)来包含示例中描述的对象。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。