如何为Ruby的net-ldap库创建对应ldapsearch语句的查询过滤器
问题描述
我有一条可正常运行的ldap搜索查询语句:
ldapsearch -H ldaps://ldap.google.com -b dc=pangeare,dc=com '(memberOf=cn=pcore_readonly,ou=Groups,dc=pangeare,dc=com)'
我想知道如何在Ruby的net-ldap中创建对应的过滤器,现有代码如下:
treebase="dc=pangeare,dc=com" filter = Net::LDAP::Filter.XXXXXXXXXX ldap.search(:base => treebase, :filter=> filter, :return_result => true) do |entry| entry.each do |attr,values| puts "DN: #{entry.dn}" end
请问Net::LDAP::Filter部分应该如何编写?
解决方案
你可以用以下两种写法实现对应过滤逻辑:
- 写法1:用
eq方法构造,适合需要动态拼接过滤条件的场景filter = Net::LDAP::Filter.eq('memberOf', 'cn=pcore_readonly,ou=Groups,dc=pangeare,dc=com') - 写法2:直接解析现有过滤字符串,适合复用已写好的ldap过滤规则,不容易出错
filter = Net::LDAP::Filter.construct('(memberOf=cn=pcore_readonly,ou=Groups,dc=pangeare,dc=com)')
内容的提问来源于stack exchange,提问作者yyiws
相关产品推荐
相关产品推荐

