我已将devise_ldap_authenticatable gem从0.4.6升级到最新版本(0.4.9)我以前工作的LDAP身份验证现在在尝试进行身份验证时抛出以下异常:
Devise中的Net :: BER :: BerError :: SessionsController #create
不支持的对象类型:id = 139
终端输出以下内容:
在2011-07-11 11:58:45为127.0.0.1开始发布“/ d / users / sign_in” +0100由Devise处理:: SessionsController #create as HTML参数:{“utf8”=>“✓”, “authenticity_token”=> “中T + TTL / 6YPK1A / HE4XRukI7SKHDTVr553 / HOD + 5UyYUk =”, “user”=> {“username”=>“admin”,“password”=>“[已过滤]”, “remember_me”=>“0”},“commit”=>“登录”} SQL(0.4ms)SELECT名称 FROM sqlite_master WHERE type ='table'AND NOT name = 'sqlite_sequence'
用户加载(1.3ms)SELECT“users”。* FROM“users”WHERE “users”。“username”=“admin”LIMIT 1 LDAP:LDAP搜索:uid = admin 在659ms内完成500内部服务器错误
Net :: BER :: BerError(不支持的对象类型:id = 139):
如果我将宝石降级回旧版本,那么它将全部恢复生机(严格来说,我必须在devise.rb中注释掉“config.sign_out_via =:delete”)
FWIW我正在使用以下宝石/版本:
如果有人知道发生了什么或者可以建议我可以看一下调试这个,我将不胜感激!
答案 0 :(得分:1)
经过多次挖掘后,我将问题追溯到net-ldap库0.2.2版。 我已经分叉devise_ldap_authenticatable来创建一个版本,其中包含以前版本的net-ldap(0.1.1)作为依赖项。
如果真的想要你可以使用我的叉子,但我不会维护它 - 这只是一个临时措施,直到:
a)net-ldap库是固定的
b)我有时间深入研究这个问题并提出更好的解决方案
我的分叉位于:https://github.com/ashleytowers/devise_ldap_authenticatable
答案 1 :(得分:1)
为什么不使用旧的net-ldap?
gem install -V net-ldap -v 0.1.1
我使用net-ldap版本0.1.1,它适用于ruby 1.9
答案 2 :(得分:0)