Я создаю приложение, для которого я пытаюсь использовать LDAP с authlogic для аутентификации входа. Я хочу принять только имя пользователя и войти в систему, если он находится на сервере LDAP. Для этого мне нужно отключить проверку пароля. Как я могу это сделать?
Как сделать пароль необязательным при использовании аутентификации authlogic и LDAP?
Ответы (4)
Я думаю, вы можете сделать это так:
class User < ActiveRecord::Base
acts_as_authentic do |config|
config.validate_password_field = false
end
end
В вашей модели User, где вы вызываете act_as_authentic, это может сработать:
acts_as_authentic do |config|
config.require_password_confirmation = false
config.ignore_blank_passwords = true
end
Эти параметры конфигурации, среди прочего, можно найти в lib/authlogic/acts_as_authentic/password.rb (в версии 2.1.3).
У меня была такая же проблема с надстройкой authlogic_ldap, которую я модифицировал для своего приложения. Я сделал ошибку, включив login_field :ldap_login в класс User. У меня также изначально была ошибка stack level too deep, но я вернул authlogic с версии 3.0.3 на версию 3.0.2, и теперь она работает.
Мне удалось сделать это с помощью Open ID (та же идея, пароль не хранится в моем приложении), не имея столбца пароля в таблице users и используя эту конфигурацию для Authlogic:
class User < ActiveRecord::Base
acts_as_authentic do |c|
c.crypted_password_field = false
end
end
Без установки crypted_password_field при сохранении пользователя возникали ошибки.
users (или любой другой таблице, лежащей в основе вашей модели acts_as_authentic) нет поля пароля. Это то, что генерирует атрибут пароля в модели.
- person Sean Carpenter; 06.01.2010