仅在 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。这导致它无法正确加载配置。将生产部分一直向左对齐固定它。现在一切正常。
我正在使用 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。这导致它无法正确加载配置。将生产部分一直向左对齐固定它。现在一切正常。