0
我在Torquebox上构建了JRuby的rails 4应用程序,并且遇到了与会话有关的奇怪问题。我正在使用设计宝石来处理认证,除此之外,根据导轨安全指南,我试图在用户成功登录时重置会话。reset_session没有做任何事情
我创建了一个监狱挂钩处理这对我来说,它看起来像这样
Warden::Manager.after_set_user :event => [:set_user, :authentication] do |record, warden, options|
if options[:scope] && warden.authenticated?(options[:scope])
request = warden.request
Rails.logger.debug "session - #{request.session}"
# backup = request.session.to_hash
# backup.delete(:session_id)
request.reset_session
# request.session.update(backup)
Rails.logger.debug "session - #{request.session}"
end
end
这个方法绝对是被称为这是伟大的,但是两个输出都相同,且会话不重的。我使用的是TorqueBox会话存储,建立像
# session_store.rb
RtsBackend::Application.config.session_store :torquebox_store, {
key: '_RtsBackend_session'
}
# config.ru
use TorqueBox::Session::ServletStore
而且它似乎是工作作为TorqueBox已插入的数据,并从色器件会话数据的工作,但我似乎无法将其清除。
我的印象是,devise在登录时自动执行了这个操作,但是如果出现同样的问题,rails还没有清除它。
有什么建议吗?