python ldap3:如果多个匹配项,则按字符串选择条目

时间:2018-07-12 07:47:17

标签: python ldap3

我在摆弄着著名的ldap3模块的抽象层。 我正在尝试按字符串匹配条目,但由于存在多个匹配项 结果中会出现错误。

从文档摘录:

  

当您使用字符串作为Cursor索引时,将在所有条目DN中搜索文本。如果仅一个条目匹配,则返回它,如果多个条目匹配文本,则引发KeyError异常。

这就是它的作用,也是我的问题。

from ldap3 import Server, Connection, ObjectDef, AttrDef, Reader, Writer, ALL, SUBTREE
server = Server('lpgaixmgmtlx01.test.***.**', get_info=ALL)
connection = Connection(server, 'cn=roots,dc=***,dc=**','***', auto_bind=True)
obj_sudorole = ObjectDef( 'SudoRole', connection)
 r = Reader(connection, obj_sudorole, 'ou=SUDOers,ou=apps,dc=***,dc=**')
r = Reader(connection, obj_sudorole, 'ou=SUDOers,ou=apps,dc=***,dc=**')
r.search()
w = Writer.from_cursor(r)
e = w['XDB_STAFF']

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python2.7/site-packages/ldap3/abstract/cursor.py", line 168, in __getitem__
    raise KeyError(error_message)
KeyError: u'Multiple entries found: 2 entries match the text in dn [cn=XDB_STAFF,ou=SUDOers,ou=apps,dc=***,dc=**; cn=XDB_STAFF_2,ou=SUDOers,ou=apps,dc=***,dc=**]'

那么,即使条目中存在多个正则表达式匹配项,我如何查询确切的一个字符串?

0 个答案:

没有答案