From 4fa8e68cdc4a86f16348ddcbbbe786ba97552ce7 Mon Sep 17 00:00:00 2001 From: aripringle Date: Fri, 18 May 2012 17:03:28 -0600 Subject: [PATCH] Add support for javascript object notation in allowed JSONP callback --- src/Symfony/Component/HttpFoundation/JsonResponse.php | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/Symfony/Component/HttpFoundation/JsonResponse.php b/src/Symfony/Component/HttpFoundation/JsonResponse.php index 0551e75b17..ae0a8a7abf 100644 --- a/src/Symfony/Component/HttpFoundation/JsonResponse.php +++ b/src/Symfony/Component/HttpFoundation/JsonResponse.php @@ -55,8 +55,11 @@ class JsonResponse extends Response if ($callback) { // taken from http://www.geekality.net/2011/08/03/valid-javascript-identifier/ $pattern = '/^[$_\p{L}][$_\p{L}\p{Mn}\p{Mc}\p{Nd}\p{Pc}\x{200C}\x{200D}]*+$/u'; - if (!preg_match($pattern, $callback)) { - throw new \InvalidArgumentException('The callback name is not valid.'); + $parts = explode('.', $callback); + foreach ($parts as $part) { + if (!preg_match($pattern, $part)) { + throw new \InvalidArgumentException('The callback name is not valid.'); + } } }