You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 06:27:06