【问题标题】:Encoding Error when using Devise ldap authentication使用设计 ldap 身份验证时出现编码错误
【发布时间】:2012-02-20 20:30:22
【问题描述】:

我一直在互联网上寻找答案,但我没有想法。我正在使用带有 Rails 3 的设计来通过 LDAP 进行身份验证。我正在使用带有 Ruby 1.9.2 的 Rails 3。我使用 mysql2 作为数据库连接器。

我可以让它与 rails 控制台一起使用,这样我就知道我的地址并且一切都是正确的。

我们有一个活动目录,为了进行身份验证,我们必须在登录名前加上系统。所以我的登录名是systems\crudbasher。

这在控制台中有效,但是当我有一个带有登录名和密码的表单时,我收到了这个错误。

Devise::SessionsController#create 中的编码::CompatibilityError 不兼容的字符编码: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!'

我真的很难过。感谢任何可以提供帮助的人!

【问题讨论】:

    标签: ruby-on-rails ruby devise ldap


    【解决方案1】:

    编码总是一团糟。你试过玩弄encodeforce_encoding吗?

    【讨论】:

      【解决方案2】:

      我遇到了同样的问题,我通过将 net-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,并且不破坏我的捆绑更新

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-05-25
        • 1970-01-01
        • 2011-08-21
        • 1970-01-01
        相关资源
        最近更新 更多