From faf91600a945de38c52e32a4b4f8871c7814b6cf Mon Sep 17 00:00:00 2001
From: Jaime Perez Crespo <jaime.perez@uninett.no>
Date: Tue, 21 Apr 2015 11:12:14 +0200
Subject: [PATCH] Move SimpleSAML_Utilities::parseQueryString() to
 SimpleSAML\Utils\HTTP::parseQueryString() and deprecate the former.

---
 lib/SimpleSAML/Utilities.php  | 27 ++------------------------
 lib/SimpleSAML/Utils/HTTP.php | 36 +++++++++++++++++++++++++++++++++++
 2 files changed, 38 insertions(+), 25 deletions(-)

diff --git a/lib/SimpleSAML/Utilities.php b/lib/SimpleSAML/Utilities.php
index 170156c2d..a0dab57b6 100644
--- a/lib/SimpleSAML/Utilities.php
+++ b/lib/SimpleSAML/Utilities.php
@@ -939,33 +939,10 @@ class SimpleSAML_Utilities {
 
 
 	/**
-	 * Parse a query string into an array.
-	 *
-	 * This function parses a query string into an array, similar to the way the builtin
-	 * 'parse_str' works, except it doesn't handle arrays, and it doesn't do "magic quotes".
-	 *
-	 * Query parameters without values will be set to an empty string.
-	 *
-	 * @param $query_string  The query string which should be parsed.
-	 * @return The query string as an associative array.
+	 * @deprecated This method will be removed in SSP 2.0. Please use SimpleSAML\Utils\HTTP::parseQueryString() instead.
 	 */
 	public static function parseQueryString($query_string) {
-		assert('is_string($query_string)');
-
-		$res = array();
-		foreach(explode('&', $query_string) as $param) {
-			$param = explode('=', $param);
-			$name = urldecode($param[0]);
-			if(count($param) === 1) {
-				$value = '';
-			} else {
-				$value = urldecode($param[1]);
-			}
-
-			$res[$name] = $value;
-		}
-
-		return $res;
+		return \SimpleSAML\Utils\HTTP::parseQueryString($query_string);
 	}
 
 
diff --git a/lib/SimpleSAML/Utils/HTTP.php b/lib/SimpleSAML/Utils/HTTP.php
index 01a6209fd..d501162af 100644
--- a/lib/SimpleSAML/Utils/HTTP.php
+++ b/lib/SimpleSAML/Utils/HTTP.php
@@ -87,4 +87,40 @@ class HTTP
         }
         return $port;
     }
+
+
+    /**
+     * Parse a query string into an array.
+     *
+     * This function parses a query string into an array, similar to the way the builtin 'parse_str' works, except it
+     * doesn't handle arrays, and it doesn't do "magic quotes".
+     *
+     * Query parameters without values will be set to an empty string.
+     *
+     * @param string $query_string The query string which should be parsed.
+     *
+     * @return array The query string as an associative array.
+     * @throws \SimpleSAML_Error_Exception If $query_string is not a string.
+     *
+     * @author Olav Morken, UNINETT AS <olav.morken@uninett.no>
+     */
+    public static function parseQueryString($query_string)
+    {
+        if (!is_string($query_string)) {
+            throw new \SimpleSAML_Error_Exception('Invalid input parameters');
+        }
+
+        $res = array();
+        foreach (explode('&', $query_string) as $param) {
+            $param = explode('=', $param);
+            $name = urldecode($param[0]);
+            if (count($param) === 1) {
+                $value = '';
+            } else {
+                $value = urldecode($param[1]);
+            }
+            $res[$name] = $value;
+        }
+        return $res;
+    }
 }
\ No newline at end of file
-- 
GitLab