我正在尝试使用 ActiveLdap 搜索具有特定属性值的用户,但它正在向服务器发送一些奇怪的查询。我的设置是这样的:
class Ldapuser < ActiveLdap::Base
ldap_mapping :dn_attribute => 'uid',
:prefix => 'ou=People',
:classes => ['top', 'inetOrgPerson']
end
然后尝试找到具有特定专业的学生:
Ldapuser.all(
:attribute => 'studentMajor', :value => 'CHEM',
:attribute => 'primaryAffiliation', :value => 'student',
:attribute => 'organizationalStatus', :value => 'active').each {|user|
# process the user...
}
当我运行它时,它永远不会到达它将处理用户的内部块,我必须终止程序。Tcpdump 显示执行的三个搜索:
- searchRequest(1) "" baseObject - 给出 0 个结果。
- searchRequest(2) "cn=schema" baseObject - 给出了 115 个结果。
- searchRequest(3) "ou=people,dc=myedu,dc=edu" wholeSubtree - 这需要太长时间,所以我打断了它。
我的期望是它会执行一次查询并快速获得大约 20 个结果,这是我在命令行中使用 ldapsearch 时得到的结果:
ldapsearch -x '(&(studentMajor=CHEM)(primaryAffiliation=student)
(organizationalStatus=active))'