summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJean-Philippe Lang <jp_lang@yahoo.fr>2016-01-16 09:08:06 +0000
committerJean-Philippe Lang <jp_lang@yahoo.fr>2016-01-16 09:08:06 +0000
commitaaeb0807bfd7f22433a2dd84ec7145b501465bb6 (patch)
tree17e3ce229e1b14159c44819ff1e49b1b103fee1a
parent9adf2cb0ea9bec187b70e91816f13a92ab9fbd84 (diff)
downloadredmine-aaeb0807bfd7f22433a2dd84ec7145b501465bb6.tar.gz
redmine-aaeb0807bfd7f22433a2dd84ec7145b501465bb6.zip
Accept dots in JSONP callback (#13718).
git-svn-id: http://svn.redmine.org/redmine/trunk@15066 e93f8b46-1217-0410-a6f0-8f06a7374b81
-rw-r--r--lib/redmine/views/builders/json.rb2
-rw-r--r--test/integration/api_test/jsonp_test.rb4
2 files changed, 3 insertions, 3 deletions
diff --git a/lib/redmine/views/builders/json.rb b/lib/redmine/views/builders/json.rb
index 50833fdc8..5a38ee004 100644
--- a/lib/redmine/views/builders/json.rb
+++ b/lib/redmine/views/builders/json.rb
@@ -27,7 +27,7 @@ module Redmine
super
callback = request.params[:callback] || request.params[:jsonp]
if callback && Setting.jsonp_enabled?
- self.jsonp = callback.to_s.gsub(/[^a-zA-Z0-9_]/, '')
+ self.jsonp = callback.to_s.gsub(/[^a-zA-Z0-9_.]/, '')
end
end
diff --git a/test/integration/api_test/jsonp_test.rb b/test/integration/api_test/jsonp_test.rb
index 5cb5f5d00..16acc1710 100644
--- a/test/integration/api_test/jsonp_test.rb
+++ b/test/integration/api_test/jsonp_test.rb
@@ -52,11 +52,11 @@ class Redmine::ApiTest::JsonpTest < Redmine::ApiTest::Base
def test_jsonp_should_strip_invalid_characters_from_callback
with_settings :jsonp_enabled => '1' do
- get '/trackers.json?callback=+-aA$1_'
+ get '/trackers.json?callback=+-aA$1_.'
end
assert_response :success
- assert_match %r{^aA1_\(\{"trackers":.+\}\)$}, response.body
+ assert_match %r{^aA1_.\(\{"trackers":.+\}\)$}, response.body
assert_equal 'application/javascript; charset=utf-8', response.headers['Content-Type']
end