Ruby ruby 操作 ldap 的 bind 方法错误

sven · 2014年03月11日 · 最后由 nouse 回复于 2014年03月11日 · 4100 次阅读
#!/usr/bin/ruby -w
require  'ldap'

$HOST =    '192.168.18.65'
$PORT =    LDAP::LDAP_PORT

base = 'ou=users,dc=case,dc=org'
scope = LDAP::LDAP_SCOPE_SUBTREE
filter = '(&(objectClass=caseAccount)([email protected]))'
attrs = ['cn']


conn = LDAP::Conn.new($HOST, $PORT)
conn.bind('cn=Manager,dc=case,dc=org','case',LDAP::LDAP_AUTH_SIMPLE)

conn.perror("bind")
begin
  conn.search(base, scope, filter ,attrs) { |entry|
     # print distinguished name
     p entry.dn
     # print all attribute names
     p entry.attrs
     # print values of attribute 'sn'
     p entry.vals('cn')
     # print entry as Hash
     p entry.to_hash
  }

rescue LDAP::ResultError
  conn.perror("search")
  exit
end
conn.perror("search")
conn.unbind


报了如下错误就是bind方法那行。
deal_ldap.rb:14:in `bind': Protocol error (LDAP::ResultError)
    from deal_ldap.rb:14:in `<main>'
报错了,不知道为啥。找不到原因,bind方法应该就是这样的吧??或者有好的方法吗??先谢谢啦。

已经 protocol error 了,你看看是不是加密的 LDAP,比如 LDAPS 或者 SSL

需要 登录 后方可回复, 如果你还没有账号请 注册新账号