仅在 Prod 中设计 LDAP Auth 问题

Devise issue with LDAP Auth in Prod Only

我正在使用 Rails 5.2,我已经设计了 LDAP 设置并在开发中工作。尽管在输入我的用户名和密码时出错,但使用 capistrano 部署到 prod。我在 devise::sessions::create 中收到 nomethod 错误。 nil:NilClass 的未定义方法“[]”。这是出错的部分:

end
    ldap_options = params
    ldap_config["ssl"] = :simple_tls if ldap_config["ssl"] === true
    ldap_options[:encryption] = ldap_config["ssl"].to_sym if ldap_config["ssl"]

    @ldap = Net::LDAP.new(ldap_options)

这是我的 LDAP 配置:

authorizations: &AUTHORIZATIONS
required_groups:
- CN=GROUP1,OU=Users,OU=mysite,DC=ad,DC=com

## Environment

development:
  host: mysite.com
  port: 389
  attribute: sAMAccountName
  base: dc=ad,dc=com
  admin_user: user
  admin_password: password
  ssl: false
  <<: *AUTHORIZATIONS

 production:
  host: mysite.com
  port: 389
  attribute: sAMAccountName
  base: dc=ad,dc=com
  admin_user: user
  admin_password: password
  ssl: false
  <<: *AUTHORIZATIONS

关于为什么这只在生产中这样做有什么想法吗?

我想通了!在我的 LDAP.yml 文件中,生产连接部分缩进了一个 space。这导致它无法正确加载配置。将生产部分一直向左对齐固定它。现在一切正常。