ruby-on-rails – Authlogic LDAP:加密通信

我有一个带有authlogic和LDAP的rails应用程序,但我的问题是我可以看到日志文件中的所有用户密码,是否有一些东西需要修复以加密这些密码.
对于ldap我使用:encryption simple_TLS

谢谢你的帮助

解决方法

这是我用 authlogicnet-ldap做的方式:

配置/ ldap.yml

production:
      host: localhost
      port: 636
      base: ou=people,dc=mydomain
      admin_user: cn=admin,dc=mydomain
      admin_password: password
      ssl: true

应用程序/模型/ ldap_connect.rb

class LdapConnect

      attr_reader :ldap

      def initialize(params = {})
        ldap_config = YAML.load_file("#{RAILS_ROOT}/config/ldap.yml")[RAILS_ENV]
        ldap_options = params
        ldap_options[:encryption] = :simple_tls if ldap_config["ssl"]

        @ldap = Net::LDAP.new(ldap_options)
        @ldap.host = ldap_config["host"]
        @ldap.port = ldap_config["port"]
        @ldap.base = ldap_config["base"]
        @ldap.auth ldap_config["admin_user"],ldap_config["admin_password"] if params[:admin] 
      end

    end

应用程序/模型/ user_session.rb

class UserSession < Authlogic::Session::Base

      verify_password_method :valid_ldap_credentials?

    end

应用程序/模型/ user.rb

class User < ActiveRecord::Base

  acts_as_authentic do |c|
    c.validate_password_field = false
    c.logged_in_timeout = 30.minutes
  end

  def dn
    "cn=#{self.email},ou=people,dc=mydomain"
  end

  def valid_ldap_credentials?(password_plaintext)
    ldap = LdapConnect.new.ldap
    ldap.auth self.dn,password_plaintext
    ldap.bind # will return false if authentication is NOT successful
  end

end

相关文章

validates:conclusion,:presence=>true,:inclusion=>{...
一、redis集群搭建redis3.0以前,提供了Sentinel工具来监控各...
分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣...
上一篇博文 ruby传参之引用类型 里边定义了一个方法名 mo...
一编程与编程语言 什么是编程语言? 能够被计算机所识别的表...
Ruby类和对象Ruby是一种完美的面向对象编程语言。面向对象编...