2012-02-20 46 views
5

我一直在搜索互聯網尋找答案,但我沒有想法。我正在使用Devise 3與Rails進行身份驗證。我在Ruby 1.9.2中使用Rails 3。我使用mysql2作爲數據庫連接器。使用Devise ldap身份驗證時的編碼錯誤

我可以得到這個工作與軌道控制檯,所以我知道我的地址,一切都是正確的。

我們有一個活動目錄,爲了進行身份驗證,我們必須在系統中爲登錄名添加前綴。所以我的登錄將是系統\ crudbasher。

這可以在控制檯中使用,但是當我使用登錄名和密碼的表單時,出現此錯誤。

編碼:: CompatibilityError在設計:: SessionsController#創建 不兼容的字符編碼:ASCII-8BIT和UTF-8

好吧,我得到它具有反斜槓的問題。我不明白的是如何解決它。

完整的堆棧跟蹤,如果有幫助的是:

net-ldap (0.2.2) lib/net/ber/core_ext/array.rb:62:in `to_ber_seq_internal' 
net-ldap (0.2.2) lib/net/ber/core_ext/array.rb:54:in `to_ber_contextspecific' 
net-ldap (0.2.2) lib/net/ldap/filter.rb:509:in `to_ber' 
net-ldap (0.2.2) lib/net/ldap.rb:1380:in `block in search' 
net-ldap (0.2.2) lib/net/ldap.rb:1361:in `loop' 
net-ldap (0.2.2) lib/net/ldap.rb:1361:in `search' 
net-ldap (0.2.2) lib/net/ldap.rb:635:in `search' 
devise_ldap_authenticatable (0.6.0) lib/devise_ldap_authenticatable/ldap_adapter.rb:208:in `search_for_login' 
devise_ldap_authenticatable (0.6.0) lib/devise_ldap_authenticatable/ldap_adapter.rb:86:in `dn' 
devise_ldap_authenticatable (0.6.0) lib/devise_ldap_authenticatable/ldap_adapter.rb:124:in `authorized?' 
devise_ldap_authenticatable (0.6.0) lib/devise_ldap_authenticatable/ldap_adapter.rb:14:in `valid_credentials?' 
devise_ldap_authenticatable (0.6.0) lib/devise_ldap_authenticatable/model.rb:39:in `valid_ldap_authentication?' 
activesupport (3.1.1) lib/active_support/core_ext/object/try.rb:32:in `try' 
devise_ldap_authenticatable (0.6.0) lib/devise_ldap_authenticatable/model.rb:85:in `authenticate_with_ldap' 
devise_ldap_authenticatable (0.6.0) lib/devise_ldap_authenticatable/strategy.rb:12:in `authenticate!' 

我真的很爲難。感謝任何能夠幫助的人!

回答

1

編碼總是一團糟。你有沒有嘗試過與encodeforce_encoding

0

我已經和我固定通過更新淨LDAP庫0.3.1這個同樣的問題,但打破了我的get_ldap_email(這就像devise_ldap_authenticatable主網頁例如,查詢LDAP)

而且一切似乎好吧,但我不是100%確定,如果沒有其他東西被打破。

編輯:顯然,我還需要更新devise_ldap_authenticatable到0.4.7或更高版本 - >Ruby on Rails 3: Devise::LdapAdapter.get_ldap_param undefined method error

但我不知道如何更新兩個,devise_ldapnet-ldap,並沒有打破我的包更新