Моя команда настроила мое рубиновое приложение на rails для работы с devd ldap. Всякий раз, когда пользователь входит в систему в первый раз, он создает новую запись в модели Users и работает полностью нормально. Но всякий раз, когда пользователь, который уже существует в Пользователями базы данных пытается войти в это дает следующее сообщение об ошибке:Rails Devise LDAP Ошибка: NoMethodError в разработке :: SessionController # create
NoMethodError in Devise::SessionsController#create
undefined method `to' for nil:NilClass
Глядя на консоли сервера, похоже, это не удается на этом SQL заявление:
SELECT `users`.* FROM `users` WHERE `users`.`username` = 'jDoe' LIMIT 1
Я думаю, что сервер не получает результатов от этого запроса.
Но всякий раз, когда я запускаю тот же оператор SQL в консоли рубина, он дает правильный результат (запись пользователя, пытающегося войти)
Вот некоторые из моих DEViSE конфиги. Я новичок в разработке и рубине (и я также не устанавливал программу), поэтому дайте мне знать, если вам нужны другие файлы конфигурации для отладки этой проблемы.
Инициализаторы/devise.rb
Devise.setup do |config|
config.ldap_create_user = true
config.ldap_update_password = false
config.mailer_sender = "****"
require 'devise/orm/active_record'
config.authentication_keys = [ :username ]
config.case_insensitive_keys = [ :email ]
config.strip_whitespace_keys = [ :email ]
config.skip_session_storage = [:http_auth]
config.stretches = Rails.env.test? ? 1 : 10
config.reconfirmable = true
config.password_length = 8..128
config.sign_out_via = :delete
end
ldap.yml
authorizations: &AUTHORIZATIONS
group_base: ou=groups,dc=test,dc=com
required_groups:
- cn=admins,ou=groups,dc=test,dc=com
- cn=users,ou=groups,dc=test,dc=com
- ["moreMembers", "cn=users,ou=groups,dc=test,dc=com"]
require_attribute:
objectClass: inetOrgPerson
authorizationRole: postsAdmin
development:
host: ****
port: 636
attribute: uid
base: ou=People,dc=***,dc=com
admin_user: cn=admin,dc=test,dc=com
admin_password: admin_password
ssl: true
test:
host: localhost
port: 3389
attribute: cn
base: ou=people,dc=test,dc=com
admin_user: cn=admin,dc=test,dc=com
admin_password: admin_password
ssl: simple_tls
production:
host: localhost
port: 636
attribute: cn
base: ou=people,dc=test,dc=com
admin_user: cn=admin,dc=test,dc=com
admin_password: admin_password
ssl: start_tls
user.rb
class User < ActiveRecord::Base
devise :ldap_authenticatable, :rememberable, :trackable
attr_accessible :name, :cell, :email, :pref, :type, :username, :password, :password_confirmation, :remember_me
end
Кто-нибудь это понял? У Iv была та же проблема. – Cheyne