mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
Make csrf_meta_tags use the tag helper
Improved formatting of csrf_helper and improved test coverage
This commit is contained in:
parent
a7c5d40d80
commit
2cdc1f0cd5
2 changed files with 9 additions and 9 deletions
|
@ -17,10 +17,12 @@ module ActionView
|
||||||
# Note that regular forms generate hidden fields, and that Ajax calls are whitelisted,
|
# Note that regular forms generate hidden fields, and that Ajax calls are whitelisted,
|
||||||
# so they do not use these tags.
|
# so they do not use these tags.
|
||||||
def csrf_meta_tags
|
def csrf_meta_tags
|
||||||
<<-METAS.strip_heredoc.chomp.html_safe if protect_against_forgery?
|
if protect_against_forgery?
|
||||||
<meta name="csrf-param" content="#{Rack::Utils.escape_html(request_forgery_protection_token)}"/>
|
[
|
||||||
<meta name="csrf-token" content="#{Rack::Utils.escape_html(form_authenticity_token)}"/>
|
tag('meta', :name => 'csrf-param', :content => request_forgery_protection_token),
|
||||||
METAS
|
tag('meta', :name => 'csrf-token', :content => form_authenticity_token)
|
||||||
|
].join("\n").html_safe
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
# For backwards compatibility.
|
# For backwards compatibility.
|
||||||
|
|
|
@ -172,13 +172,11 @@ end
|
||||||
class RequestForgeryProtectionControllerTest < ActionController::TestCase
|
class RequestForgeryProtectionControllerTest < ActionController::TestCase
|
||||||
include RequestForgeryProtectionTests
|
include RequestForgeryProtectionTests
|
||||||
|
|
||||||
test 'should emit a csrf-token meta tag' do
|
test 'should emit a csrf-param meta tag and a csrf-token meta tag' do
|
||||||
ActiveSupport::SecureRandom.stubs(:base64).returns(@token + '<=?')
|
ActiveSupport::SecureRandom.stubs(:base64).returns(@token + '<=?')
|
||||||
get :meta
|
get :meta
|
||||||
assert_equal <<-METAS.strip_heredoc.chomp, @response.body
|
assert_select 'meta[name=?][content=?]', 'csrf-param', 'authenticity_token'
|
||||||
<meta name="csrf-param" content="authenticity_token"/>
|
assert_select 'meta[name=?][content=?]', 'csrf-token', 'cf50faa3fe97702ca1ae<=?'
|
||||||
<meta name="csrf-token" content="cf50faa3fe97702ca1ae<=?"/>
|
|
||||||
METAS
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue