带有特殊字符('+')的ldap搜索返回null

时间:2013-05-10 07:10:03

标签: ldap python-ldap

我想通过unique-member属性搜索组内的特定ldap节点。 像。的东西。

search_filter = 'uniqueMember=mail='testuser.+abc@abc.com',ou=people,dc=myorg,dc=com'

当我用

搜索此文件管理器时
conn.search_s(node_dn, ldap.SCOPE_BASE, search_filter, [])

返回{'info':'','desc':'糟糕的搜索过滤器'}。

对search_filter进行类似搜索而不使用'+'

search_filter = 'uniqueMember=mail='testuser.abc@abc.com',ou=people,dc=myorg,dc=com'

返回所需的输出。

我试图逃避一切可能的方法。像

a. uniqueMember=mail='testuser.\+abc@abc.com',ou=people,dc=myorg,dc=com
b. uniqueMember=mail='testuser.\\+abc@abc.com',ou=people,dc=myorg,dc=com
c. uniqueMember=mail='testuser.\2Babc@abc.com',ou=people,dc=myorg,dc=com
d. uniqueMember=mail='testuser.\\2Babc@abc.com',ou=people,dc=myorg,dc=com

我试过'\ 2B',因为这是我在apache-directory studio中看到uniqueMember属性的方式。

我正在使用python-ldap 2.2.0和port389。

配置port389时是否有任何遗漏。请帮忙。

1 个答案:

答案 0 :(得分:1)

加号+表示RDN是多值的。

另见