Odd Bug during Authentication with ldap

Added by Mike Tegtmeyer about 11 years ago

I've set up redmine according to directions and attempted to enable ldap authentication according to http://www.prestonlee.com/archives/218 and I've successfully been able to authenticate according to the log but I then get the following error:

I'm new to ruby and radmine so any help would be greatly appreciated.

TypeError in AccountController#login

can't convert Array into String
RAILS_ROOT: /Library/WebServer/Documents/redmine

vendor/plugins/gloc-1.1.0/lib/gloc-rails.rb:171:in `+'
vendor/plugins/gloc-1.1.0/lib/gloc-rails.rb:171:in `full_messages'
vendor/plugins/gloc-1.1.0/lib/gloc-rails.rb:165:in `each'
vendor/plugins/gloc-1.1.0/lib/gloc-rails.rb:165:in `full_messages'
vendor/plugins/gloc-1.1.0/lib/gloc-rails.rb:164:in `each_key'
vendor/plugins/gloc-1.1.0/lib/gloc-rails.rb:164:in `full_messages'
app/models/user.rb:113:in `try_to_login'
app/controllers/account_controller.rb:46:in `login'
/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/lib/mongrel/rails.rb:76:in `process'
/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/lib/mongrel/rails.rb:74:in `synchronize'
/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/lib/mongrel/rails.rb:74:in `process'
/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:159:in `process_client'
/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:158:in `each'
/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:158:in `process_client'
/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:285:in `run'
/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:285:in `initialize'
/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:285:in `new'
/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:285:in `run'
/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:268:in `initialize'
/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:268:in `new'
/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:268:in `run'
/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/lib/mongrel/configurator.rb:282:in `run'
/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/lib/mongrel/configurator.rb:281:in `each'
/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/lib/mongrel/configurator.rb:281:in `run'
/usr/bin/mongrel_rails_server:131:in `run'
/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/lib/mongrel/command.rb:212:in `run'
/usr/bin/mongrel_rails_server:256

Request

Parameters:

{"username"=>"foo",
"password"=>"bar",
"login"=>"Login »"}
Show session dump

---
:user_id:
flash: !map:ActionController::Flash::FlashHash {}

Response

Headers:

{"cookie"=>[],
"Cache-Control"=>"no-cache"}

Here is the log message:

Processing AccountController#login (for 127.0.0.1 at 2008-09-19 14:39:54) [POST]
Session ID: 1fe52ef1f619b533a66e7569d58f5f52
Parameters: {"action"=>"login", "username"=>"foo", "bar"=>"account", "password"=>"[FILTERED]", "login"=>"Login »"}
Setting Columns (0.001288) SHOW FIELDS FROM `settings`
SQL (0.000091) SELECT max(updated_on) AS max_updated_on FROM `settings`
SQL (0.000531) SHOW TABLES
User Columns (0.001307) SHOW FIELDS FROM `users`
SQL (0.000588) SHOW TABLES
Project Columns (0.001238) SHOW FIELDS FROM `projects`
SQL (0.000443) SHOW TABLES
Issue Columns (0.001434) SHOW FIELDS FROM `issues`
SQL (0.000395) SHOW TABLES
SQL (0.000576) SHOW TABLES
SQL (0.000722) SHOW TABLES
AnonymousUser Columns (0.001611) SHOW FIELDS FROM `users`
AnonymousUser Load (0.000211) SELECT * FROM `users` WHERE ( (`users`.`type` = 'AnonymousUser' ) ) LIMIT 1
User Load (0.000310) SELECT * FROM `users` WHERE (login='foo') LIMIT 1
SQL (0.000498) SHOW TABLES
AuthSource Load (0.000215) SELECT * FROM `auth_sources` WHERE (onthefly_register=1)
AuthSource Columns (0.001333) SHOW FIELDS FROM `auth_sources`
AuthSourceLdap Columns (0.001376) SHOW FIELDS FROM `auth_sources`
Authenticating 'tegtmeye' against 'localhost'
DN found for tegtmeye: uid=foo,cn=users,dc=some,dc=long,dc=long,dc=domain
Authentication successful for 'tegtmeye'
Setting Load (0.000104) SELECT * FROM `settings` WHERE (`settings`.`name` = 'default_language') LIMIT 1
SQL (0.000059) BEGIN
User Load (0.000291) SELECT * FROM `users` WHERE (users.login = 'foo') LIMIT 1
SQL (0.000054) COMMIT

TypeError (can't convert Array into String):
/vendor/plugins/gloc-1.1.0/lib/gloc-rails.rb:171:in `+'
/vendor/plugins/gloc-1.1.0/lib/gloc-rails.rb:171:in `full_messages'
/vendor/plugins/gloc-1.1.0/lib/gloc-rails.rb:165:in `each'
/vendor/plugins/gloc-1.1.0/lib/gloc-rails.rb:165:in `full_messages'
/vendor/plugins/gloc-1.1.0/lib/gloc-rails.rb:164:in `each_key'
/vendor/plugins/gloc-1.1.0/lib/gloc-rails.rb:164:in `full_messages'
/app/models/user.rb:113:in `try_to_login'
/app/controllers/account_controller.rb:46:in `login'
/vendor/rails/actionpack/lib/action_controller/base.rb:1158:in `send'
/vendor/rails/actionpack/lib/action_controller/base.rb:1158:in `perform_action_without_filters'
/vendor/rails/actionpack/lib/action_controller/filters.rb:697:in `call_filters'
/vendor/rails/actionpack/lib/action_controller/filters.rb:689:in `perform_action_without_benchmark'
/vendor/rails/actionpack/lib/action_controller/benchmarking.rb:68:in `perform_action_without_rescue'
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/benchmark.rb:293:in `measure'
/vendor/rails/actionpack/lib/action_controller/benchmarking.rb:68:in `perform_action_without_rescue'
/vendor/rails/actionpack/lib/action_controller/rescue.rb:199:in `perform_action_without_caching'
/vendor/rails/actionpack/lib/action_controller/caching.rb:678:in `perform_action'
/vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/query_cache.rb:33:in `cache'
/vendor/rails/activerecord/lib/active_record/query_cache.rb:8:in `cache'
/vendor/rails/actionpack/lib/action_controller/caching.rb:677:in `perform_action'
/vendor/rails/actionpack/lib/action_controller/base.rb:524:in `send'
/vendor/rails/actionpack/lib/action_controller/base.rb:524:in `process_without_filters'
/vendor/rails/actionpack/lib/action_controller/filters.rb:685:in `process_without_session_management_support'
/vendor/rails/actionpack/lib/action_controller/session_management.rb:123:in `process'
/vendor/rails/actionpack/lib/action_controller/base.rb:388:in `process'
/vendor/rails/actionpack/lib/action_controller/dispatcher.rb:171:in `handle_request'
/vendor/rails/actionpack/lib/action_controller/dispatcher.rb:115:in `dispatch'
/vendor/rails/actionpack/lib/action_controller/dispatcher.rb:126:in `dispatch_cgi'
/vendor/rails/actionpack/lib/action_controller/dispatcher.rb:9:in `dispatch'
/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/lib/mongrel/rails.rb:76:in `process'
/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/lib/mongrel/rails.rb:74:in `synchronize'
/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/lib/mongrel/rails.rb:74:in `process'
/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:159:in `process_client'
/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:158:in `each'
/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:158:in `process_client'
/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:285:in `run'
/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:285:in `initialize'
/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:285:in `new'
/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:285:in `run'
/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:268:in `initialize'
/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:268:in `new'
/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:268:in `run'
/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/lib/mongrel/configurator.rb:282:in `run'
/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/lib/mongrel/configurator.rb:281:in `each'
/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/lib/mongrel/configurator.rb:281:in `run'
/usr/bin/mongrel_rails_server:131:in `run'
/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/lib/mongrel/command.rb:212:in `run'
/usr/bin/mongrel_rails_server:256

Rendering /Library/WebServer/Documents/redmine/vendor/rails/actionpack/lib/action_controller/templates/rescues/layout.erb (internal_server_error)

Replies (3)

RE: Odd Bug during Authentication with ldap - Added by Mike Tegtmeyer about 11 years ago

Sorry, forgot environment

sh-3.2$ RAILS_ENV=development ruby script/about
GLoc v1.1 running in development mode. Strings can be modified at runtime.
About your application's environment
Ruby version 1.8.6 (universal-darwin9.0)
RubyGems version 1.2.0
Rails version 2.0.2
Active Record version 2.0.2
Action Pack version 2.0.2
Active Resource version 2.0.2
Action Mailer version 2.0.2
Active Support version 2.0.2
Edge Rails revision rel_2-0-2
Application root /Library/WebServer/Documents/redmine
Environment development
Database adapter mysql
Database schema version 92

RE: Odd Bug during Authentication with ldap - Added by Mike Tegtmeyer about 11 years ago

OK,

I don't know ruby but the crash is from the formatting of the following on line 114 if user.rb

         logger.error("User '#{onthefly.login}' found in LDAP but could not be\
 created (#{onthefly.errors.full_messages.join(', ')})") if logger

So at the least, this seems like a bug. Still not sure why it is unable to create the user from LDAP though...

RE: Odd Bug during Authentication with ldap - Added by Mike Tegtmeyer about 11 years ago

OK, it seems that the reason for login failure was due to the missing info in ldap. So for the sake of anyone else who has this problem. You must make sure that all info is in the attributes section of "Authentication mode (LDAP)" even though it says it is optional, it is not. Maybe if the logger error worked, that info would have been clearer.

(1-3/3)