ruby - 如何为 Ruby 创建一个 net-ldap 过滤器
问题描述
我有一个有效的 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}"
解决方案
Net::LDAP::Filter#eq
应该是你要找的
require 'net/ldap'
host = 'ldap.google.com'
port = 636
auth = {
:method => :simple, # or :simple_tls ? (I don't know Google's LDAP)
:username => 'uid=username,dc=xxx,dc=xxx',
:password => 'password'
}
ldap = Net::LDAP.new( :host => host, :port => port, :auth => auth)
base = 'dc=pangeare,dc=com'
filter = Net::LDAP::Filter.eq('memberOf','cn=pcore_readonly,ou=Groups,dc=pangeare,dc=com')
ldap.search(:base => base, :filter => filter) do |entry|
p entry
end
或者你可以只使用Net::LDAP::Filter#construct
:
filter = Net::LDAP::Filter.construct('(memberOf=cn=pcore_readonly,ou=Groups,dc=pangeare,dc=com)')
推荐阅读
- reactjs - 无法将日期和时间传递到下一个屏幕反应原生
- mysql - 以毫秒为单位的 Mysql 插入
- django-models - 如何在 django 中合并两个模型
- python - scipy.interpolate.Rbf() 的插值不准确
- php - 提交后的 URL 重写问题
- android - RecyclerView 滚动混乱(在大位图存在的情况下)
- r - 两个具有缺失值的矩阵的叉积
- cs-cart - 如何将邮政编码查找到我的 cs-cart 地址表单以制作附加组件?
- javascript - 混合字符串和数字(地址)的Lodash排序
- javascript - 定义具有内部内容的自定义卡片组件