mirror of
https://github.com/meineerde/redmine.git
synced 2025-10-17 17:01:01 +00:00
Adds @Cache-Control: no-store@ header to login, lost password, change password and sudo pages (#42998).
Patch by Go MAEDA (user:maeda). git-svn-id: https://svn.redmine.org/redmine/trunk@23908 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
parent
1a5fb1325b
commit
d79fe0df9a
@ -36,6 +36,7 @@ class AccountController < ApplicationController
|
|||||||
redirect_back_or_default home_url, :referer => true
|
redirect_back_or_default home_url, :referer => true
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
no_store
|
||||||
rescue AuthSourceException => e
|
rescue AuthSourceException => e
|
||||||
logger.error "An error occurred when authenticating #{params[:username]}: #{e.message}"
|
logger.error "An error occurred when authenticating #{params[:username]}: #{e.message}"
|
||||||
render_error :message => e.message
|
render_error :message => e.message
|
||||||
@ -95,6 +96,7 @@ class AccountController < ApplicationController
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
no_store
|
||||||
render :template => "account/password_recovery"
|
render :template => "account/password_recovery"
|
||||||
return
|
return
|
||||||
else
|
else
|
||||||
|
|||||||
@ -115,6 +115,7 @@ class MyController < ApplicationController
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
no_store
|
||||||
end
|
end
|
||||||
|
|
||||||
# Create a new feeds key
|
# Create a new feeds key
|
||||||
|
|||||||
@ -124,6 +124,7 @@ module Redmine
|
|||||||
@sudo_form.original_fields = params.slice(*param_names)
|
@sudo_form.original_fields = params.slice(*param_names)
|
||||||
# a simple 'render "sudo_mode/new"' works when used directly inside an
|
# a simple 'render "sudo_mode/new"' works when used directly inside an
|
||||||
# action, but not when called from a before_action:
|
# action, but not when called from a before_action:
|
||||||
|
no_store
|
||||||
respond_to do |format|
|
respond_to do |format|
|
||||||
format.html {render 'sudo_mode/new'}
|
format.html {render 'sudo_mode/new'}
|
||||||
format.js {render 'sudo_mode/new'}
|
format.js {render 'sudo_mode/new'}
|
||||||
|
|||||||
@ -27,6 +27,7 @@ class AccountControllerTest < Redmine::ControllerTest
|
|||||||
def test_get_login
|
def test_get_login
|
||||||
get :login
|
get :login
|
||||||
assert_response :success
|
assert_response :success
|
||||||
|
assert_includes @response.headers['Cache-Control'], 'no-store'
|
||||||
|
|
||||||
assert_select 'input[name=username][autocomplete=username]'
|
assert_select 'input[name=username][autocomplete=username]'
|
||||||
assert_select 'input[name=password][autocomplete=current-password]'
|
assert_select 'input[name=password][autocomplete=current-password]'
|
||||||
@ -521,6 +522,7 @@ class AccountControllerTest < Redmine::ControllerTest
|
|||||||
|
|
||||||
get :lost_password
|
get :lost_password
|
||||||
assert_response :success
|
assert_response :success
|
||||||
|
assert_includes @response.headers['Cache-Control'], 'no-store'
|
||||||
|
|
||||||
assert_select 'input[type=hidden][name=token][value=?]', token.value
|
assert_select 'input[type=hidden][name=token][value=?]', token.value
|
||||||
end
|
end
|
||||||
|
|||||||
@ -599,6 +599,7 @@ class MyControllerTest < Redmine::ControllerTest
|
|||||||
def test_change_password
|
def test_change_password
|
||||||
get :password
|
get :password
|
||||||
assert_response :success
|
assert_response :success
|
||||||
|
assert_includes @response.headers['Cache-Control'], 'no-store'
|
||||||
assert_select 'input[type=password][name=password][autocomplete=current-password]'
|
assert_select 'input[type=password][name=password][autocomplete=current-password]'
|
||||||
assert_select 'input[type=password][name=new_password][autocomplete=new-password]'
|
assert_select 'input[type=password][name=new_password][autocomplete=new-password]'
|
||||||
assert_select 'input[type=password][name=new_password_confirmation][autocomplete=new-password]'
|
assert_select 'input[type=password][name=new_password_confirmation][autocomplete=new-password]'
|
||||||
|
|||||||
@ -259,6 +259,14 @@ class SudoModeTest < Redmine::IntegrationTest
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def test_sudo_mode_should_include_cache_control_no_store
|
||||||
|
log_user("admin", "admin")
|
||||||
|
expire_sudo_mode!
|
||||||
|
get '/settings'
|
||||||
|
assert_response :success
|
||||||
|
assert_includes @response.headers['Cache-Control'], 'no-store'
|
||||||
|
end
|
||||||
|
|
||||||
private
|
private
|
||||||
|
|
||||||
# sudo mode is active after sign, let it expire by advancing the time
|
# sudo mode is active after sign, let it expire by advancing the time
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user