aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack
diff options
context:
space:
mode:
authorPiotr Sarnacki <drogus@gmail.com>2012-03-28 17:54:06 +0200
committerPiotr Sarnacki <drogus@gmail.com>2012-03-28 18:03:16 +0200
commit128cfbdf4d316a544a76e5c58dbeac153f3d4e36 (patch)
tree1393451fb453e5199d7839c2b008990fb29ab115 /actionpack
parent805b15ff35122f5fd0bb9c1742578b14eebfac32 (diff)
downloadrails-128cfbdf4d316a544a76e5c58dbeac153f3d4e36.tar.gz
rails-128cfbdf4d316a544a76e5c58dbeac153f3d4e36.tar.bz2
rails-128cfbdf4d316a544a76e5c58dbeac153f3d4e36.zip
config.action_view.embed_authenticity_token_in_remote_forms is true by default
Changed default value for `config.action_view.embed_authenticity_token_in_remote_forms` to `false`. This change breaks remote forms that need to work also without javascript, so if you need such behavior, you can either set it to `true` or explicitly pass `:authenticity_token => true` in form options
Diffstat (limited to 'actionpack')
-rw-r--r--actionpack/CHANGELOG.md5
-rw-r--r--actionpack/lib/action_view/helpers/form_tag_helper.rb2
-rw-r--r--actionpack/lib/action_view/railtie.rb2
-rw-r--r--actionpack/test/controller/request_forgery_protection_test.rb33
4 files changed, 21 insertions, 21 deletions
diff --git a/actionpack/CHANGELOG.md b/actionpack/CHANGELOG.md
index de62919c3c..f004a4fce7 100644
--- a/actionpack/CHANGELOG.md
+++ b/actionpack/CHANGELOG.md
@@ -1,5 +1,10 @@
## Rails 4.0.0 (unreleased) ##
+* Changed default value for `config.action_view.embed_authenticity_token_in_remote_forms`
+ to `false`. This change breaks remote forms that need to work also without javascript,
+ so if you need such behavior, you can either set it to `true` or explicitly pass
+ `:authenticity_token => true` in form options
+
* Added ActionDispatch::SSL middleware that when included force all the requests to be under HTTPS protocol. *Rafael Mendonça França*
* Add `include_hidden` option to select tag. With `:include_hidden => false` select with `multiple` attribute doesn't generate hidden input with blank value. *Vasiliy Ermolovich*
diff --git a/actionpack/lib/action_view/helpers/form_tag_helper.rb b/actionpack/lib/action_view/helpers/form_tag_helper.rb
index be4e88c9b3..63451e2c36 100644
--- a/actionpack/lib/action_view/helpers/form_tag_helper.rb
+++ b/actionpack/lib/action_view/helpers/form_tag_helper.rb
@@ -19,7 +19,7 @@ module ActionView
include TextHelper
mattr_accessor :embed_authenticity_token_in_remote_forms
- self.embed_authenticity_token_in_remote_forms = true
+ self.embed_authenticity_token_in_remote_forms = false
# Starts a form tag that points the action to an url configured with <tt>url_for_options</tt> just like
# ActionController::Base#url_for. The method for the form defaults to POST.
diff --git a/actionpack/lib/action_view/railtie.rb b/actionpack/lib/action_view/railtie.rb
index 5162e1955b..9f5e3be454 100644
--- a/actionpack/lib/action_view/railtie.rb
+++ b/actionpack/lib/action_view/railtie.rb
@@ -7,7 +7,7 @@ module ActionView
config.action_view = ActiveSupport::OrderedOptions.new
config.action_view.stylesheet_expansions = {}
config.action_view.javascript_expansions = { :defaults => %w(jquery jquery_ujs) }
- config.action_view.embed_authenticity_token_in_remote_forms = true
+ config.action_view.embed_authenticity_token_in_remote_forms = false
initializer "action_view.embed_authenticity_token_in_remote_forms" do |app|
ActiveSupport.on_load(:action_view) do
diff --git a/actionpack/test/controller/request_forgery_protection_test.rb b/actionpack/test/controller/request_forgery_protection_test.rb
index 7ded9ddc81..89f605b5ad 100644
--- a/actionpack/test/controller/request_forgery_protection_test.rb
+++ b/actionpack/test/controller/request_forgery_protection_test.rb
@@ -116,42 +116,37 @@ module RequestForgeryProtectionTests
assert_select 'form>div>input[name=?][value=?]', 'custom_authenticity_token', @token
end
- def test_should_render_form_with_token_tag_if_remote
+ def test_should_render_form_without_token_tag_if_remote
assert_not_blocked do
get :form_for_remote
end
- assert_match(/authenticity_token/, response.body)
+ assert_no_match(/authenticity_token/, response.body)
end
- def test_should_render_form_without_token_tag_if_remote_and_embedding_token_is_off
+ def test_should_render_form_with_token_tag_if_remote_and_embedding_token_is_on
+ original = ActionView::Helpers::FormTagHelper.embed_authenticity_token_in_remote_forms
begin
- ActionView::Helpers::FormTagHelper.embed_authenticity_token_in_remote_forms = false
+ ActionView::Helpers::FormTagHelper.embed_authenticity_token_in_remote_forms = true
assert_not_blocked do
get :form_for_remote
end
- assert_no_match(/authenticity_token/, response.body)
+ assert_match(/authenticity_token/, response.body)
ensure
- ActionView::Helpers::FormTagHelper.embed_authenticity_token_in_remote_forms = true
+ ActionView::Helpers::FormTagHelper.embed_authenticity_token_in_remote_forms = original
end
end
- def test_should_render_form_with_token_tag_if_remote_and_embedding_token_is_off_but_true_option_passed
- begin
- ActionView::Helpers::FormTagHelper.embed_authenticity_token_in_remote_forms = false
+ def test_should_render_form_with_token_tag_if_remote_and_external_authenticity_token_requested_and_embedding_is_on
+ original = ActionView::Helpers::FormTagHelper.embed_authenticity_token_in_remote_forms
+ begin
+ ActionView::Helpers::FormTagHelper.embed_authenticity_token_in_remote_forms = true
assert_not_blocked do
- get :form_for_remote_with_token
+ get :form_for_remote_with_external_token
end
- assert_match(/authenticity_token/, response.body)
+ assert_select 'form>div>input[name=?][value=?]', 'custom_authenticity_token', 'external_token'
ensure
- ActionView::Helpers::FormTagHelper.embed_authenticity_token_in_remote_forms = true
- end
- end
-
- def test_should_render_form_with_token_tag_if_remote_and_external_authenticity_token_requested
- assert_not_blocked do
- get :form_for_remote_with_external_token
+ ActionView::Helpers::FormTagHelper.embed_authenticity_token_in_remote_forms = original
end
- assert_select 'form>div>input[name=?][value=?]', 'custom_authenticity_token', 'external_token'
end
def test_should_render_form_with_token_tag_if_remote_and_authenticity_token_requested