2012-02-20 27 views
5

Ho cercato su Internet una risposta a questo, ma ho perso le idee. Sto usando Devise con Rails 3 per autenticarsi con LDAP. Sto usando Rails 3 con Ruby 1.9.2. Sto usando mysql2 come connettore del database.Errore di codifica durante l'utilizzo dell'autenticazione Devd di LAPI

Posso farlo funzionare con la console di rails quindi conosco i miei indirizzi e tutto è corretto.

Abbiamo una directory attiva e per l'autenticazione dobbiamo anteporre il nome di accesso ai sistemi. Quindi il mio login sarebbe system \ crudbasher.

Questo funziona nella console ma quando ho un modulo con nome utente e password ottengo questo errore.

Encoding :: CompatibilityError in Devise :: SessionsController # creare codifiche dei caratteri incompatibili: ASCII-8 bit e UTF-8

Ok ho capito che sta avendo un problema con il backslash. Quello che non capisco è come risolverlo.

La traccia completa dello stack se aiuta è questo:

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!' 

Sono davvero perplesso. Grazie a tutti coloro che possono aiutare !!

risposta

1

La codifica è sempre un casino. Hai provato a giocare con encode e force_encoding?

0

Ho avuto questo stesso problema e ho risolto aggiornando biblioteca net-LDAP per 0.3.1, ma che ha fatto traboccare il mio get_ldap_email (che è proprio come devise_ldap_authenticatable principale ad esempio pagina Interrogazione LDAP)

anche tutto sembrava essere ok ma non sono sicuro al 100% se nient'altro è rotto.

Edit: A quanto pare ho anche bisogno di aggiornare devise_ldap_authenticatable alla versione 0.4.7 o superiore ->Ruby on Rails 3: Devise::LdapAdapter.get_ldap_param undefined method error

Ma io non sono sicuro di come aggiornare entrambi, devise_ldap e net-ldap, e non rompere il mio aggiornamento fascio

Problemi correlati