Project

General

Profile

Actions

Bug #33415

open

LDAP. register on-the-fly, NoMethodError: undefined method `each' for nil:NilClass

Added by Peter Bittner almost 3 years ago.

Status:
New
Priority:
Normal
Assignee:
-
Category:
Users, Roles and Permissions
Target version:
-
Difficulty:
Triaged:
No
Fixed in Releases:
Found in Releases:

Description

I have a freshly set up The Foreman 3.0.0-rc2, which LDAP configured (LDAP server on a local Synology NAS). "Onthefly Register" and "Usergroup Sync" are both activated. See [1] for more configuration details of the LDAP integration.

When I try to log in with an LDAP user then the LDAP user details seem to be looked up successfully, but populating the database results in:

undefined method `each' for nil:NilClass

Source of the exception: app/models/auth_sources/auth_source_ldap.rb:128
https://github.com/theforeman/foreman/blob/3.0-stable/app/models/auth_sources/auth_source_ldap.rb#L128

app_1           | 2021-09-03T20:37:20 [I|app|dc9b2118] Started POST "/users/login" for 172.18.0.1 at 2021-09-03 20:37:20 +0000
app_1           | 2021-09-03T20:37:20 [I|app|dc9b2118] Processing by UsersController#login as HTML
app_1           | 2021-09-03T20:37:20 [I|app|dc9b2118]   Parameters: {"login"=>{"login"=>"peter", "password"=>"[FILTERED]"}, "authenticity_token"=>"LChdV...(redacted)...B2DQ=="}
app_1           | 2021-09-03T20:37:21 [I|aud|dc9b2118] User (5) create event on login peter
app_1           | 2021-09-03T20:37:21 [I|aud|dc9b2118] User (5) create event on firstname Peter Bittner
app_1           | 2021-09-03T20:37:21 [I|aud|dc9b2118] User (5) create event on lastname peter
app_1           | 2021-09-03T20:37:21 [I|aud|dc9b2118] User (5) create event on mail peter@example.com
app_1           | 2021-09-03T20:37:21 [I|aud|dc9b2118] User (5) create event on admin false
app_1           | 2021-09-03T20:37:21 [I|aud|dc9b2118] User (5) create event on auth_source_id 4
app_1           | 2021-09-03T20:37:21 [I|aud|dc9b2118] User (5) create event on locale
app_1           | 2021-09-03T20:37:21 [I|aud|dc9b2118] User (5) create event on avatar_hash
app_1           | 2021-09-03T20:37:21 [I|aud|dc9b2118] User (5) create event on default_organization_id
app_1           | 2021-09-03T20:37:21 [I|aud|dc9b2118] User (5) create event on default_location_id
app_1           | 2021-09-03T20:37:21 [I|aud|dc9b2118] User (5) create event on lower_login peter
app_1           | 2021-09-03T20:37:21 [I|aud|dc9b2118] User (5) create event on mail_enabled true
app_1           | 2021-09-03T20:37:21 [I|aud|dc9b2118] User (5) create event on timezone
app_1           | 2021-09-03T20:37:21 [I|aud|dc9b2118] User (5) create event on description
app_1           | 2021-09-03T20:37:21 [I|aud|dc9b2118] User (5) create event on disabled false
app_1           | 2021-09-03T20:37:21 [I|aud|dc9b2118] User (5) create event on password [redacted]
app_1           | 2021-09-03T20:37:21 [I|aud|dc9b2118] User (5) create event on organization_ids [3]
app_1           | 2021-09-03T20:37:21 [I|aud|dc9b2118] User (5) create event on location_ids [4]
app_1           | 2021-09-03T20:37:21 [W|app|dc9b2118] undefined method `each' for nil:NilClass
app_1           | 2021-09-03T20:37:21 [I|app|dc9b2118] Backtrace for 'undefined method `each' for nil:NilClass' error (NoMethodError): undefined method `each' for nil:NilClass
app_1           |  dc9b2118 | /home/foreman/vendor/ruby/2.7.0/gems/ldap_fluff-0.6.0/lib/ldap_fluff/posix_member_service.rb:20:in `find_user_groups'
app_1           |  dc9b2118 | /home/foreman/vendor/ruby/2.7.0/gems/ldap_fluff-0.6.0/lib/ldap_fluff/generic.rb:38:in `groups_for_uid'
app_1           |  dc9b2118 | /home/foreman/vendor/ruby/2.7.0/gems/ldap_fluff-0.6.0/lib/ldap_fluff/ldap_fluff.rb:48:in `block in group_list'
app_1           |  dc9b2118 | /home/foreman/app/models/auth_sources/auth_source_ldap.rb:128:in `update_usergroups'
app_1           |  dc9b2118 | /home/foreman/app/models/user.rb:569:in `block in try_to_auto_create_user'
app_1           |  dc9b2118 | /home/foreman/app/models/concerns/foreman/thread_session.rb:108:in `as'
app_1           |  dc9b2118 | /home/foreman/app/models/concerns/foreman/thread_session.rb:114:in `as_anonymous_admin'
app_1           |  dc9b2118 | /home/foreman/app/models/user.rb:567:in `try_to_auto_create_user'
app_1           |  dc9b2118 | /home/foreman/vendor/ruby/2.7.0/gems/activesupport-6.0.3.7/lib/active_support/callbacks.rb:121:in `block in run_callbacks'
app_1           |  dc9b2118 | /home/foreman/vendor/ruby/2.7.0/gems/audited-4.10.0/lib/audited/sweeper.rb:14:in `around'
app_1           |  dc9b2118 | /home/foreman/vendor/ruby/2.7.0/gems/activesupport-6.0.3.7/lib/active_support/callbacks.rb:121:in `block in run_callbacks'
app_1           |  dc9b2118 | /home/foreman/vendor/ruby/2.7.0/gems/audited-4.10.0/lib/audited/sweeper.rb:14:in `around'
app_1           |  dc9b2118 | /home/foreman/vendor/ruby/2.7.0/gems/activesupport-6.0.3.7/lib/active_support/callbacks.rb:121:in `block in run_callbacks'
app_1           |  dc9b2118 | /home/foreman/vendor/ruby/2.7.0/gems/activesupport-6.0.3.7/lib/active_support/callbacks.rb:139:in `run_callbacks'
app_1           |  dc9b2118 | /home/foreman/vendor/ruby/2.7.0/gems/actionpack-6.0.3.7/lib/abstract_controller/callbacks.rb:41:in `process_action'
app_1           |  dc9b2118 | /home/foreman/vendor/ruby/2.7.0/gems/actionpack-6.0.3.7/lib/action_controller/metal/rescue.rb:22:in `process_action'
app_1           |  dc9b2118 | /home/foreman/vendor/ruby/2.7.0/gems/apipie-rails-0.5.19/lib/apipie/middleware/checksum_in_headers.rb:27:in `call'
app_1           |  dc9b2118 | /home/foreman/lib/foreman/middleware/catch_json_parse_errors.rb:9:in `call'
app_1           |  dc9b2118 | /home/foreman/vendor/ruby/2.7.0/gems/rack-2.2.3/lib/rack/tempfile_reaper.rb:15:in `call'
app_1           |  dc9b2118 | /home/foreman/vendor/ruby/2.7.0/gems/rack-2.2.3/lib/rack/etag.rb:27:in `call'
app_1           |  dc9b2118 | /home/foreman/vendor/ruby/2.7.0/gems/rack-2.2.3/lib/rack/conditional_get.rb:40:in `call'
app_1           |  dc9b2118 | /home/foreman/vendor/ruby/2.7.0/gems/rack-2.2.3/lib/rack/head.rb:12:in `call'
app_1           |  dc9b2118 | /home/foreman/vendor/ruby/2.7.0/gems/actionpack-6.0.3.7/lib/action_dispatch/http/content_security_policy.rb:18:in `call'
app_1           |  dc9b2118 | /home/foreman/lib/foreman/middleware/logging_context_session.rb:22:in `call'
app_1           |  dc9b2118 | /home/foreman/vendor/ruby/2.7.0/gems/rack-2.2.3/lib/rack/session/abstract/id.rb:266:in `context'
app_1           |  dc9b2118 | /home/foreman/vendor/ruby/2.7.0/gems/rack-2.2.3/lib/rack/session/abstract/id.rb:260:in `call'
app_1           |  dc9b2118 | /home/foreman/vendor/ruby/2.7.0/gems/actionpack-6.0.3.7/lib/action_dispatch/middleware/cookies.rb:648:in `call'
app_1           |  dc9b2118 | /home/foreman/vendor/ruby/2.7.0/gems/actionpack-6.0.3.7/lib/action_dispatch/middleware/callbacks.rb:27:in `block in call'
app_1           |  dc9b2118 | /home/foreman/vendor/ruby/2.7.0/gems/activesupport-6.0.3.7/lib/active_support/callbacks.rb:101:in `run_callbacks'
app_1           |  dc9b2118 | /home/foreman/vendor/ruby/2.7.0/gems/actionpack-6.0.3.7/lib/action_dispatch/middleware/callbacks.rb:26:in `call'
app_1           |  dc9b2118 | /home/foreman/vendor/ruby/2.7.0/gems/activesupport-6.0.3.7/lib/active_support/cache/strategy/local_cache_middleware.rb:29:in `call'
app_1           |  dc9b2118 | /home/foreman/vendor/ruby/2.7.0/gems/actionpack-6.0.3.7/lib/action_dispatch/middleware/executor.rb:14:in `call'
app_1           | 2021-09-03T20:37:21 [I|app|dc9b2118]   Rendering common/500.html.erb within layouts/application
app_1           | 2021-09-03T20:37:21 [I|app|dc9b2118]   Rendered common/500.html.erb within layouts/application (Duration: 7.1ms | Allocations: 957)
app_1           | 2021-09-03T20:37:21 [I|app|dc9b2118]   Rendered layouts/_application_content.html.erb (Duration: 0.3ms | Allocations: 33)
app_1           | 2021-09-03T20:37:21 [I|app|dc9b2118]   Rendering layouts/base.html.erb
app_1           | 2021-09-03T20:37:21 [I|app|dc9b2118]   Rendered layouts/base.html.erb (Duration: 3.4ms | Allocations: 984)
app_1           | 2021-09-03T20:37:21 [I|app|dc9b2118] Completed 500 Internal Server Error in 886ms (Views: 14.9ms | ActiveRecord: 197.6ms | Allocations: 54357)

Log output of later attempts with the same user looks similar:

app_1           | 2021-09-03T21:04:45 [I|app|9db531ff] Started POST "/users/login" for 172.18.0.1 at 2021-09-03 21:04:45 +0000
app_1           | 2021-09-03T21:04:45 [I|app|9db531ff] Processing by UsersController#login as HTML
app_1           | 2021-09-03T21:04:45 [I|app|9db531ff]   Parameters: {"login"=>{"login"=>"peter", "password"=>"[FILTERED]"}, "authenticity_token"=>"5J0m...(redacted)...icw=="}
app_1           | 2021-09-03T21:04:45 [W|app|9db531ff] undefined method `each' for nil:NilClass
app_1           | 2021-09-03T21:04:45 [I|app|9db531ff] Backtrace for 'undefined method `each' for nil:NilClass' error (NoMethodError): undefined method `each' for nil:NilClass
app_1           |  9db531ff | /home/foreman/vendor/ruby/2.7.0/gems/ldap_fluff-0.6.0/lib/ldap_fluff/posix_member_service.rb:20:in `find_user_groups'
app_1           |  9db531ff | /home/foreman/vendor/ruby/2.7.0/gems/ldap_fluff-0.6.0/lib/ldap_fluff/generic.rb:38:in `groups_for_uid'
app_1           |  9db531ff | /home/foreman/vendor/ruby/2.7.0/gems/ldap_fluff-0.6.0/lib/ldap_fluff/ldap_fluff.rb:48:in `block in group_list'
app_1           |  9db531ff | /home/foreman/vendor/ruby/2.7.0/gems/ldap_fluff-0.6.0/lib/ldap_fluff/ldap_fluff.rb:94:in `block in instrument'
app_1           |  9db531ff | /home/foreman/vendor/ruby/2.7.0/gems/activesupport-6.0.3.7/lib/active_support/notifications.rb:180:in `instrument'
app_1           |  9db531ff | /home/foreman/vendor/ruby/2.7.0/gems/ldap_fluff-0.6.0/lib/ldap_fluff/ldap_fluff.rb:93:in `instrument'
app_1           |  9db531ff | /home/foreman/vendor/ruby/2.7.0/gems/ldap_fluff-0.6.0/lib/ldap_fluff/ldap_fluff.rb:47:in `group_list'
app_1           |  9db531ff | /home/foreman/vendor/ruby/2.7.0/gems/audited-4.10.0/lib/audited/sweeper.rb:14:in `around'
app_1           |  9db531ff | /home/foreman/vendor/ruby/2.7.0/gems/activesupport-6.0.3.7/lib/active_support/callbacks.rb:121:in `block in run_callbacks'
app_1           |  9db531ff | /home/foreman/vendor/ruby/2.7.0/gems/actionpack-6.0.3.7/lib/action_controller/metal/instrumentation.rb:33:in `block in process_action'
app_1           |  9db531ff | /home/foreman/vendor/ruby/2.7.0/gems/activesupport-6.0.3.7/lib/active_support/notifications.rb:180:in `block in instrument'
app_1           |  9db531ff | /home/foreman/vendor/ruby/2.7.0/gems/actionpack-6.0.3.7/lib/action_controller/metal.rb:254:in `dispatch'
app_1           |  9db531ff | /home/foreman/vendor/ruby/2.7.0/gems/actionpack-6.0.3.7/lib/action_dispatch/routing/route_set.rb:50:in `dispatch'
app_1           |  9db531ff | /home/foreman/lib/foreman/middleware/telemetry.rb:10:in `call'
app_1           |  9db531ff | /home/foreman/vendor/ruby/2.7.0/gems/apipie-rails-0.5.19/lib/apipie/middleware/checksum_in_headers.rb:27:in `call'
app_1           |  9db531ff | /home/foreman/lib/foreman/middleware/catch_json_parse_errors.rb:9:in `call'
app_1           |  9db531ff | /home/foreman/vendor/ruby/2.7.0/gems/actionpack-6.0.3.7/lib/action_dispatch/middleware/cookies.rb:648:in `call'
app_1           |  9db531ff | /home/foreman/vendor/ruby/2.7.0/gems/actionpack-6.0.3.7/lib/action_dispatch/middleware/callbacks.rb:27:in `block in call'
app_1           |  9db531ff | /home/foreman/vendor/ruby/2.7.0/gems/actionpack-6.0.3.7/lib/action_dispatch/middleware/request_id.rb:27:in `call'
app_1           |  9db531ff | /home/foreman/vendor/ruby/2.7.0/gems/rack-2.2.3/lib/rack/method_override.rb:24:in `call'
app_1           |  9db531ff | /home/foreman/vendor/ruby/2.7.0/gems/rack-2.2.3/lib/rack/runtime.rb:22:in `call'
app_1           |  9db531ff | /home/foreman/vendor/ruby/2.7.0/gems/actionpack-6.0.3.7/lib/action_dispatch/middleware/host_authorization.rb:76:in `call'
app_1           |  9db531ff | /home/foreman/vendor/ruby/2.7.0/gems/secure_headers-6.3.2/lib/secure_headers/middleware.rb:11:in `call'
app_1           | 2021-09-03T21:04:45 [I|app|9db531ff]   Rendered layouts/_application_content.html.erb (Duration: 0.4ms | Allocations: 33)
app_1           | 2021-09-03T21:04:45 [I|app|9db531ff]   Rendering layouts/base.html.erb
app_1           | 2021-09-03T21:04:45 [I|app|9db531ff]   Rendered layouts/base.html.erb (Duration: 5.0ms | Allocations: 1009)
app_1           | 2021-09-03T21:04:45 [I|app|9db531ff] Completed 500 Internal Server Error in 331ms (Views: 12.9ms | ActiveRecord: 38.2ms | Allocations: 26633)

[1] https://github.com/painless-software/synology-foreman/blob/main/init/tasks/authsourcesldap.yml

No data to display

Actions

Also available in: Atom PDF