ActiveLdap0.8.3.1→0.9.0
LDAP認証に対応したアプリケーションを実環境に移して動かしたら、パスワード間違ってても認証通るようになって焦った。ActiveLdapがバージョンアップしたせいらしい。以下0.8.3.1版と0.9.0版の認証確認用のメソッドの比較。
#0.8.3.1 def authenticated?(password) establish_connection(:password => password) true rescue ActiveLdap::AuthenticationError, ActiveLdap::LdapError::UnwillingToPerform false end
#0.9.0 def authenticated?(password) bind(password) true rescue ActiveLdap::AuthenticationError, ActiveLdap::LdapError::UnwillingToPerform false end
そういえば、そもそもの原因は RAILS_ROOT/lib にActiveLdap突っ込んだのにちゃんとロードしてくれなかったから。どっかに何か書かなきゃいけないんだっけか・・・。なんかすごい基本的なことを見過ごしてる気がする。
あと、クラスメソッド定義するとき↓みたいな書き方もできるんだと知った。クラスメソッドをまとめて定義するのに便利だと思う。好み分かれそうだけど。
class Foo class << self def bar end end def hoge end end