File tree Expand file tree Collapse file tree 2 files changed +25
-1
lines changed
lib/action_controller/metal Expand file tree Collapse file tree 2 files changed +25
-1
lines changed Original file line number Diff line number Diff line change @@ -89,7 +89,7 @@ def force_ssl_redirect(host_or_options = nil)
8989 end
9090
9191 secure_url = ActionDispatch ::Http ::URL . url_for ( options . slice ( *URL_OPTIONS ) )
92- flash . keep if respond_to? ( :flash )
92+ flash . keep if respond_to? ( :flash ) && request . respond_to? ( :flash )
9393 redirect_to secure_url , options . slice ( *REDIRECT_OPTIONS )
9494 end
9595 end
Original file line number Diff line number Diff line change @@ -92,6 +92,22 @@ def cheeseburger
9292 end
9393end
9494
95+ class RedirectToSSLIfSessionStoreDisabled < ForceSSLController
96+ def banana
97+ request . class_eval do
98+ alias_method :flash_origin , :flash
99+ undef_method :flash
100+ end
101+
102+ force_ssl_redirect || render ( plain : "monkey" )
103+ ensure
104+ request . class_eval do
105+ alias_method :flash , :flash_origin
106+ undef_method :flash_origin
107+ end
108+ end
109+ end
110+
95111class ForceSSLControllerLevelTest < ActionController ::TestCase
96112 def test_banana_redirects_to_https
97113 get :banana
@@ -321,6 +337,14 @@ def test_cheeseburgers_does_not_redirect_if_already_https
321337 end
322338end
323339
340+ class RedirectToSSLIfSessionStoreDisabledTest < ActionController ::TestCase
341+ def test_banana_redirects_to_https_if_not_https_and_session_store_disabled
342+ get :banana
343+ assert_response 301
344+ assert_equal "https://test.host/redirect_to_ssl_if_session_store_disabled/banana" , redirect_to_url
345+ end
346+ end
347+
324348class ForceSSLControllerLevelTest < ActionController ::TestCase
325349 def test_no_redirect_websocket_ssl_request
326350 request . env [ "rack.url_scheme" ] = "wss"
You can’t perform that action at this time.
0 commit comments