Ошибка LDAP во время системных тестов Rails5: запрос на обработку ошибок приложения Rack {POST / login} - PullRequest
0 голосов
/ 03 июля 2018

Аутентификация LDAP реализована в Rails с использованием https://github.com/plataformatec/devise/wiki/How-To:-Authenticate-via-LDAP и работает нормально.

Попытка использовать LDAP во время системных тестов http://guides.rubyonrails.org/testing.html#system-testing не удалась:

Rack app error handling request { POST /login }
#<NoMethodError: undefined method `[]' for nil:NilClass>
.../config/initializers/ldap_authenticatable.rb:92:in `ldap'
.../config/initializers/ldap_authenticatable.rb:60:in `bind_to_ldap'
.../config/initializers/ldap_authenticatable.rb:44:in `authenticate!'

Ошибка возникает из-за файла ldap.yml , похоже, тесты не могут прочитать конфигурацию из файла extern. Обходной путь для замены параметров LDAP

LDAP_CONFIG = YAML.load_file("#{Rails.root}/config/ldap.yml")[Rails.env]

def ldap
  ldap = Net::LDAP.new({
    :host => LDAP_CONFIG['host'],
    :port => LDAP_CONFIG['port'],
    ...

с

def ldap
  ldap = Net::LDAP.new({
    :host => 'ldap.domainname.com',
    :port => 636,
    ...

позволит избежать ошибки.

Пожалуйста, сообщите, если это ошибка.

...