Ruby-ldap, invalid credentials

Hi all,

Another ldap newb question.

I can't seem to bind to the ldap server with a password. For example, this works:

# ldaptest.rb
require "ldap"

ldap_server = "ldap.foo.com"
password = "XXX"

ldap = LDAP::Conn.new(ldap_server)
ldap.simple_bind("cn=djberge,dc=foo,dc=bar,dc=com")

However, if I try to password as the second argument to simple_bind, I get an Invalid credentials (LDAP::ResultError). I'm positive the password is correct.

My main goal is to perform ldap authentication within a Rails controller. I thought I could just check success or failure on simple_bind, but that doesn't seem to be the case.

What am I doing wrong?

Thanks,

Dan

class LdapAdmin
  def initialize()
    @LDAP_SERVER = 'ldap.lse.ac.uk'
    @LDAP_BASE_DN = 'dc=linux,dc=lse,dc=ac,dc=uk'
  end

  def login_connect?(login, password)
    # test whether the login can connect to ldap with password
    # -> true - yes
    # -> false - no
    require 'ldap'
    flag = false
    con = LDAP::Conn.new(@LDAP_SERVER)
    con.set_option(LDAP::LDAP_OPT_PROTOCOL_VERSION, 3)
    begin
      con.bind("cn=#{login},#{@LDAP_BASE_DN}", password)
      con.unbind()
      flag = true
    rescue LDAP::ResultError
      flag = false
    end
    return flag
  end
end

the above chunk of code works for me. the #{login} is admin and the password
is the one specified in /etc/ldap/slapd.conf file (basically, i use it to
log in to ldap admin account).

hope this helps,

vlad

http://pegacat.com/jxplorer/

helps me a lot with ldap.

vlad