Switched to pure ruby ldap library
I wrote an article awhile back about using the Ruby/LDAP library to handle LDAP authentication in Ruby on Rails. I just finished swapping out the LDAP client library in that application from Ruby/LDAP to ruby-net-ldap. The problems with Ruby/LDAP are that it isn’t a GEM, so installation is a bit more difficult, and it relies on a common LDAP library, like OpenLDAP, to already be installed on the system. The ruby-net-ldap library is written in pure Ruby, so no other library needs to be installed on the system.
Here is the new code that performs the authentication:
require "net/ldap"
class User < ActiveRecord::Base
def self.authenticate(login, password, host, port)
if login.to_s.length > 0 and password.to_s.length > 0
ldap = Net::LDAP.new
ldap.host = host
ldap.port = port
ldap.auth = "cn=#{login},cn=users,o=xyz...", password
if ldap.bin
return find(:first, :conditions => ['username=?', login])
else
return false
end
end
end
endActiveMailer email performance on site5
The site I am working on, RealIdaho.com, is hosted by site5. There are some forms that, when filled out by the user, send confirmation emails to the user, to us internally, and to the realtor’s cellphone. We started getting some reports that the confirmation page wouldn’t come up, and users were resubmitting the form many times. I discovered a few things while investigating that may be useful to others.