【问题标题】:how to store ldap data in ruby on rails application database?如何在 ruby​​ on rails 应用程序数据库中存储 ldap 数据?
【发布时间】:2013-12-10 04:46:24
【问题描述】:

我使用 rails4 创建了一个 Web 应用程序,并且使用 devise_ldap_authenticable gem 开发了身份验证系统。 我在哪里使用用户名登录而不是电子邮件。但我想将电子邮件存储在我的用户表中。 我的用户模型是

class User < ActiveRecord::Base
# Include default devise modules. Others available are:
# :confirmable, :lockable, :timeoutable and :omniauthable
#@attr_accessible :email, :password, :password_confirmation
# not required for LDAP :recoverable, :registerable, :validatable
devise :ldap_authenticatable, :rememberable, :trackable

validates_uniqueness_of :email, :allow_blank => true

 before_save :get_ldap_email

 def get_ldap_email
  self.email = Devise::LDAP::Adapter.get_ldap_param(self.username, "mail")
 end
end 

但在电子邮件字段的用户表中,其存储数据如

`email` = '--- !ruby/array:Net::BER::BerIdentifiedArray\ninternal:\n- !ruby/string:Net::BER::BerIdentifiedString\n str: !binary |-\n cy5naG9zaEBzYW1zdW5nLmNvbQ==\n ber_identifier: 4\nivars:\n :@ber_identifier: 49\n'  

我的日志说 LDAP:请求的参数邮件具有值 ["s.ghosh@example.com"]

我将如何将此值存储到我的用户表中。我在哪里做错了?请帮帮我。

【问题讨论】:

    标签: ruby-on-rails ruby email devise ldap


    【解决方案1】:

    只需要添加以下内容就可以了

    def get_ldap_email
      self.email = Devise::LDAP::Adapter.get_ldap_param(self.username, "mail").first
    end
    

    【讨论】:

      猜你喜欢
      • 2013-06-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-29
      • 1970-01-01
      • 1970-01-01
      • 2014-03-26
      • 1970-01-01
      相关资源
      最近更新 更多