From bbcfb9b625c4ed471fcf7c827b700ccb025e7dd9 Mon Sep 17 00:00:00 2001 From: Jeremy Kemper Date: Wed, 14 Mar 2007 11:33:10 +0000 Subject: Cookie session store: ensure that new sessions doesn't reuse data from a deleted session in the same request. git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@6424 5ecf4fe2-1ee6-0310-87b1-e25e094e27de --- actionpack/lib/action_controller/session/cookie_store.rb | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'actionpack/lib/action_controller/session/cookie_store.rb') diff --git a/actionpack/lib/action_controller/session/cookie_store.rb b/actionpack/lib/action_controller/session/cookie_store.rb index 7f0afbd4b0..01f059f156 100644 --- a/actionpack/lib/action_controller/session/cookie_store.rb +++ b/actionpack/lib/action_controller/session/cookie_store.rb @@ -96,6 +96,7 @@ class CGI::Session::CookieStore # Delete the session data by setting an expired cookie with no data. def delete @data = nil + clear_old_cookie_value write_cookie('value' => '', 'expires' => 1.year.ago) end @@ -134,4 +135,9 @@ class CGI::Session::CookieStore cookie = CGI::Cookie.new(@cookie_options.merge(options)) @session.cgi.send :instance_variable_set, '@output_cookies', [cookie] end + + # Clear cookie value so subsequent new_session doesn't reload old data. + def clear_old_cookie_value + @session.cgi.cookies[@cookie_options['name']].clear + end end -- cgit v1.2.3