ruby-on-rails – Authlogic LDAP:加密通信
发布时间:2020-12-17 01:44:19 所属栏目:百科 来源:网络整理
导读:我有一个带有authlogic和LDAP的rails应用程序,但我的问题是我可以看到日志文件中的所有用户密码,是否有一些东西需要修复以加密这些密码. 对于ldap我使用:encryption simple_TLS 谢谢你的帮助 解决方法 这是我用 authlogic和 net-ldap做的方式: 配置/ ldap.
我有一个带有authlogic和LDAP的rails应用程序,但我的问题是我可以看到日志文件中的所有用户密码,是否有一些东西需要修复以加密这些密码.
对于ldap我使用:encryption simple_TLS 谢谢你的帮助 解决方法
这是我用
authlogic和
net-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 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |