Разработайте ловушку before_logout, вызываемую с record=nil при выходе пользователя с опцией Запомнить меня

Я использую Devise 2.0.4 (с devise-neo4j), Warden 1.1.1, Rails 3.2.3.
Когда я вхожу без установленного флажка "Запомнить меня", я могу выйти без проблем.
Однако, когда я вхожу, используя опцию Запомнить меня, я не могу выйти.
Копаясь в коде, я обнаружил, что хук before_logout присутствует в devise-2.0.4/lib/devise/hooks/forgetable.rb (Warden::Manager.before_logout do |record, warden, options|) называется с record => nil,
Я не уверен, что это ошибка Devise, Warden или моя…

Трассировка стека выглядит следующим образом:

devise-2.0.4/lib/devise/hooks/forgetable.rb:7:in `(root)'
org/jruby/RubyProc.java:258:in `call'
warden-1.1.1/lib/warden/hooks.rb:14:in `_run_callbacks'
org/jruby/RubyArray.java:1615:in `each'
warden-1.1.1/lib/warden/hooks.rb:9:in `_run_callbacks'
warden-1.1.1/lib/warden/manager.rb:53:in `_run_callbacks'
warden-1.1.1/lib/warden/proxy.rb:243:in `logout'
org/jruby/RubyArray.java:1615:in `each'
warden-1.1.1/lib/warden/proxy.rb:241:in `logout'
devise-2.0.4/lib/devise/controllers/helpers.rb:159:in `sign_out_all_scopes'
devise-2.0.4/lib/devise/controllers/helpers.rb:139:in `sign_out'
devise-2.0.4/app/controllers/devise/sessions_controller.rb:23:in `destroy'

1 ответ

Проблема была связана с конфигурацией Torquebox и хранилища сеансов (config/initializers/session_store.rb). Проблема возникает при использовании конфигурации Rails по умолчанию или с закомментированной Torquebox one (по какой-то причине).

Другие вопросы по тегам