Work round session expiry bug in rails 2.3.11
authorTom Hughes <tom@compton.nu>
Thu, 2 Jun 2011 09:23:22 +0000 (10:23 +0100)
committerTom Hughes <tom@compton.nu>
Thu, 2 Jun 2011 09:23:22 +0000 (10:23 +0100)
Rails uses :expire_after in the session options to specify when a
sesssion should expire, but when Rack sets the cookie it expects to
see :expires in the cookie options but Rails 2.3.11 fails to do the
conversion so doesn't set the cookie expiry.

To work around this, we set both options in the session options...

vendor/plugins/session-persistence/lib/session_persistence.rb

index 50e30c0f131fac8055ad372a780a495055a627fe..2fac6033257c89b8fe9762e19e0351aa0cb42c9d 100644 (file)
@@ -22,9 +22,8 @@ module SessionPersistence
   
   def _persist_session
     if session[session_persistence_key]
-      request.session_options = request.session_options.dup
+      request.session_options[:expires] = Time.now + session[session_persistence_key]
       request.session_options[:expire_after] = session[session_persistence_key]
-      request.session_options.freeze
     end
   end
 end