Net::LDAP

Hi Francis, yes, it was missing the require 'net/ldap', thanks for the
tip. I tried it in irb but forgot to put it in the controller. I have
to read up alittle bit about net::ldap as Im not getting the
appropriate credentials. Im getting results below in irb. Is there an
example I can use to test out an example to test out a schema?

irb(main):023:0> require 'net/ldap'
=> true
irb(main):024:0> ldap = Net::LDAP.new :host => 'solar',
irb(main):025:0* :port => 389,
irb(main):026:0* :auth => {
irb(main):027:1* :method => :simple,
irb(main):028:1* :username =>
"cn=manager,dc=example,dc=com",
irb(main):029:1* :password => "opensesame"
irb(main):030:1> }
=> #<Net::LDAP:0x2c35148 @base="dc=com", @open_connection=nil,
@auth={:username=

"cn=manager,dc=example,dc=com", :password=>"opensesame", :method=>:simple}, @en

cryption=nil, @verbose=false, @port=389, @host="solar">
irb(main):031:0>
irb(main):032:0* filter = Net::LDAP::Filter.eq( "cn", "George*" )
=> #<Net::LDAP::Filter:0x2c265bc @left="cn", @op=:eq, @right="George*">
irb(main):033:0> treebase = "dc=example,dc=com"
=> "dc=example,dc=com"
irb(main):034:0>
irb(main):035:0* ldap.search( :base => treebase, :filter => filter )
do |entry|

irb(main):036:1* puts "DN: #{entry.dn}"
irb(main):037:1> entry.each do |attribute, values|
irb(main):038:2* puts " #{attribute}:"
irb(main):039:2> values.each do |value|
irb(main):040:3* puts " --->#{value}"
irb(main):041:3> end
irb(main):042:2> end
irb(main):043:1> end
=> false
irb(main):044:0>
irb(main):045:0* p ldap.get_operation_result
#<OpenStruct message="Invalid Credentials", code=49>

Im new to LDAP and Ruby. Trying to tackle both is hard. I originally
got the login to work in rails using database and the login generator
but was going towards more of a single sign-on using ldap. I will
continue to try to tackle this and will look at the rdocs. If you
happen to know the url to the wiki, that you point me to the right
direction. Thanks.

From the error you posted change:

ldap.search( :base => treebase, :filter => filter )

to this:

ldap.search( :base => treebase, :filter => filter ,:auth => {:method => :anonymous})

or if you want

ldap.search(:base => treebase, :filter => filter, :auth => {:method => :simple, :username => username, :password => password})