<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -51,9 +51,11 @@ module SslRequirement
 
       if ssl_required? &amp;&amp; !request.ssl?
         redirect_to &quot;https://&quot; + request.host + request.request_uri
+        flash.keep
         return false
       elsif request.ssl? &amp;&amp; !ssl_required?
         redirect_to &quot;http://&quot; + request.host + request.request_uri
+        flash.keep
         return false
       end
     end</diff>
      <filename>lib/ssl_requirement.rb</filename>
    </modified>
    <modified>
      <diff>@@ -44,6 +44,10 @@ class SslRequirementController &lt; ActionController::Base
   def d
     render :nothing =&gt; true
   end
+  
+  def set_flash
+    flash[:foo] = &quot;bar&quot;
+  end
 end
 
 class SslRequirementTest &lt; Test::Unit::TestCase
@@ -53,14 +57,44 @@ class SslRequirementTest &lt; Test::Unit::TestCase
     @response   = ActionController::TestResponse.new
   end
   
+  def test_redirect_to_https_preserves_flash
+    get :set_flash
+    get :b
+    assert_response :redirect
+    assert_equal &quot;bar&quot;, flash[:foo]
+  end
+  
+  def test_not_redirecting_to_https_does_not_preserve_the_flash
+    get :set_flash
+    get :d
+    assert_response :success
+    assert_nil flash[:foo]
+  end
+  
+  def test_redirect_to_http_preserves_flash
+    get :set_flash
+    @request.env['HTTPS'] = &quot;on&quot;
+    get :d
+    assert_response :redirect
+    assert_equal &quot;bar&quot;, flash[:foo]
+  end
+  
+  def test_not_redirecting_to_http_does_not_preserve_the_flash
+    get :set_flash
+    @request.env['HTTPS'] = &quot;on&quot;
+    get :a
+    assert_response :success
+    assert_nil flash[:foo]
+  end
+  
   def test_required_without_ssl
     assert_not_equal &quot;on&quot;, @request.env[&quot;HTTPS&quot;]
     get :a
     assert_response :redirect
-    assert_match %r{^https://}, @response.headers['location']
+    assert_match %r{^https://}, @response.headers['Location']
     get :b
     assert_response :redirect
-    assert_match %r{^https://}, @response.headers['location']
+    assert_match %r{^https://}, @response.headers['Location']
   end
   
   def test_required_with_ssl
@@ -81,7 +115,7 @@ class SslRequirementTest &lt; Test::Unit::TestCase
     @request.env['HTTPS'] = &quot;on&quot;
     get :d
     assert_response :redirect
-    assert_match %r{^http://}, @response.headers['location']
+    assert_match %r{^http://}, @response.headers['Location']
   end
 
   def test_allowed_without_ssl</diff>
      <filename>test/ssl_requirement_test.rb</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>aa2dded823f8a9b378c22ba0159971508918928a</id>
    </parent>
  </parents>
  <author>
    <name>Jeremy Kemper</name>
    <email>jeremy@bitsweat.net</email>
  </author>
  <url>http://github.com/rails/ssl_requirement/commit/34a9a138c4093bd7d5678822f8f1e62c31d47299</url>
  <id>34a9a138c4093bd7d5678822f8f1e62c31d47299</id>
  <committed-date>2008-02-01T21:16:53-08:00</committed-date>
  <authored-date>2008-02-01T21:16:53-08:00</authored-date>
  <message>SSL requirement plugin keeps flash when it redirects. Closes #8649 [rundeks, fogle]</message>
  <tree>234ebc2ec7865ccf38a8751df6d51e6ed113b650</tree>
  <committer>
    <name>Jeremy Kemper</name>
    <email>jeremy@bitsweat.net</email>
  </committer>
</commit>
