summaryrefslogtreecommitdiffstats
path: root/lib/SimpleSAML
diff options
context:
space:
mode:
authorJaime Perez Crespo <jaime.perez@uninett.no>2015-04-23 16:53:36 +0200
committerJaime Perez Crespo <jaime.perez@uninett.no>2015-04-23 16:53:36 +0200
commit7c02bdba48deefaaa52701dd9f6efe37d9bf9a8a (patch)
tree406636f2c5e59cf8fe73ebb1f65ac678093b72bb /lib/SimpleSAML
parent25a5916bbdfecb6de46a229c7ace0f757139d936 (diff)
downloadsimplesamlphp-7c02bdba48deefaaa52701dd9f6efe37d9bf9a8a.zip
simplesamlphp-7c02bdba48deefaaa52701dd9f6efe37d9bf9a8a.tar.gz
simplesamlphp-7c02bdba48deefaaa52701dd9f6efe37d9bf9a8a.tar.bz2
Use InvalidArgumentException instead of SimpleSAML_Error_Exception when dealing with wrong input parameters.
Diffstat (limited to 'lib/SimpleSAML')
-rw-r--r--lib/SimpleSAML/Utils/Arrays.php8
-rw-r--r--lib/SimpleSAML/Utils/Auth.php7
-rw-r--r--lib/SimpleSAML/Utils/Config/Metadata.php7
-rw-r--r--lib/SimpleSAML/Utils/Crypto.php54
-rw-r--r--lib/SimpleSAML/Utils/HTTP.php58
-rw-r--r--lib/SimpleSAML/Utils/System.php7
-rw-r--r--lib/SimpleSAML/Utils/Time.php6
-rw-r--r--lib/SimpleSAML/Utils/XML.php33
8 files changed, 106 insertions, 74 deletions
diff --git a/lib/SimpleSAML/Utils/Arrays.php b/lib/SimpleSAML/Utils/Arrays.php
index ec552bf..a620a11 100644
--- a/lib/SimpleSAML/Utils/Arrays.php
+++ b/lib/SimpleSAML/Utils/Arrays.php
@@ -37,7 +37,7 @@ class Arrays
* @param array $attributes The array containing attributes that we should validate and normalize.
*
* @return array The normalized attributes array.
- * @throws \SimpleSAML_Error_Exception If input is not an array, array keys are not strings or attribute values are
+ * @throws \InvalidArgumentException If input is not an array, array keys are not strings or attribute values are
* not strings.
*
* @author Olav Morken, UNINETT AS <olav.morken@uninett.no>
@@ -47,20 +47,20 @@ class Arrays
{
if (!is_array($attributes)) {
- throw new \SimpleSAML_Error_Exception('Attributes was not an array. Was: '.print_r($attributes, true).'".');
+ throw new \InvalidArgumentException('Attributes was not an array. Was: '.print_r($attributes, true).'".');
}
$newAttrs = array();
foreach ($attributes as $name => $values) {
if (!is_string($name)) {
- throw new \SimpleSAML_Error_Exception('Invalid attribute name: "'.print_r($name, true).'".');
+ throw new \InvalidArgumentException('Invalid attribute name: "'.print_r($name, true).'".');
}
$values = self::arrayize($values);
foreach ($values as $value) {
if (!is_string($value)) {
- throw new \SimpleSAML_Error_Exception('Invalid attribute value for attribute '.$name.
+ throw new \InvalidArgumentException('Invalid attribute value for attribute '.$name.
': "'.print_r($value, true).'".');
}
}
diff --git a/lib/SimpleSAML/Utils/Auth.php b/lib/SimpleSAML/Utils/Auth.php
index 16aec17..089f94e 100644
--- a/lib/SimpleSAML/Utils/Auth.php
+++ b/lib/SimpleSAML/Utils/Auth.php
@@ -15,10 +15,13 @@ class Auth
* @param string|NULL $returnTo The URL the user should arrive on after admin authentication. Defaults to null.
*
* @return string A URL which can be used for admin authentication.
+ * @throws \InvalidArgumentException If $returnTo is neither a string nor null.
*/
public static function getAdminLoginURL($returnTo = null)
{
- assert('is_string($returnTo) || is_null($returnTo)');
+ if (!(is_string($returnTo) || is_null($returnTo))) {
+ throw new \InvalidArgumentException('Invalid input parameters.');
+ }
if ($returnTo === null) {
$returnTo = \SimpleSAML\Utils\HTTP::getSelfURL();
@@ -47,7 +50,7 @@ class Auth
* a login page if the current user doesn't have admin access.
*
* @return void This function will only return if the user is admin.
- * @throws SimpleSAML_Error_Exception If no "admin" authentication source was configured.
+ * @throws \SimpleSAML_Error_Exception If no "admin" authentication source was configured.
*
* @author Olav Morken, UNINETT AS <olav.morken@uninett.no>
* @author Jaime Perez, UNINETT AS <jaime.perez@uninett.no>
diff --git a/lib/SimpleSAML/Utils/Config/Metadata.php b/lib/SimpleSAML/Utils/Config/Metadata.php
index 72c0d0d..82c47ba 100644
--- a/lib/SimpleSAML/Utils/Config/Metadata.php
+++ b/lib/SimpleSAML/Utils/Config/Metadata.php
@@ -72,11 +72,14 @@ class Metadata
* @return array An array holding valid contact configuration options. If a key 'name' was part of the input array,
* it will try to decompose the name into its parts, and place the parts into givenName and surName, if those are
* missing.
- * @throws \InvalidArgumentException if the contact does not conform to valid configuration rules for contacts.
+ * @throws \InvalidArgumentException If $contact is neither a string nor null, or the contact does not conform to
+ * valid configuration rules for contacts.
*/
public static function getContact($contact)
{
- assert('is_array($contact) || is_null($contact)');
+ if (!(is_array($contact) || is_null($contact))) {
+ throw new \InvalidArgumentException('Invalid input parameters');
+ }
// check the type
if (!isset($contact['contactType']) || !in_array($contact['contactType'], self::$VALID_CONTACT_TYPES, true)) {
diff --git a/lib/SimpleSAML/Utils/Crypto.php b/lib/SimpleSAML/Utils/Crypto.php
index 06c30aa..e09bbfe 100644
--- a/lib/SimpleSAML/Utils/Crypto.php
+++ b/lib/SimpleSAML/Utils/Crypto.php
@@ -16,14 +16,16 @@ class Crypto
* @param string $ciphertext The encrypted data to decrypt.
*
* @return string The decrypted data.
- * @throws \SimpleSAML_Error_Exception If the mcrypt module is not loaded or $ciphertext is not a string.
+ * @htorws \InvalidArgumentException If $ciphertext is not a string.
+ * @throws \SimpleSAML_Error_Exception If the mcrypt module is not loaded.
+ *
* @author Andreas Solberg, UNINETT AS <andreas.solberg@uninett.no>
* @author Jaime Perez, UNINETT AS <jaime.perez@uninett.no>
*/
public static function aesDecrypt($ciphertext)
{
if (!is_string($ciphertext)) {
- throw new \SimpleSAML_Error_Exception('Input parameter "$ciphertext" must be a string.');
+ throw new \InvalidArgumentException('Input parameter "$ciphertext" must be a string.');
}
if (!function_exists("mcrypt_encrypt")) {
throw new \SimpleSAML_Error_Exception("The mcrypt PHP module is not loaded.");
@@ -50,20 +52,23 @@ class Crypto
return $clear;
}
+
/**
* Encrypt data using AES and the system-wide secret salt as key.
*
* @param string $data The data to encrypt.
*
* @return string The encrypted data and IV.
- * @throws \SimpleSAML_Error_Exception If the mcrypt module is not loaded or $data is not a string.
+ * @throws \InvalidArgumentException If $data is not a string.
+ * @throws \SimpleSAML_Error_Exception If the mcrypt module is not loaded.
+ *
* @author Andreas Solberg, UNINETT AS <andreas.solberg@uninett.no>
* @author Jaime Perez, UNINETT AS <jaime.perez@uninett.no>
*/
public static function aesEncrypt($data)
{
if (!is_string($data)) {
- throw new \SimpleSAML_Error_Exception('Input parameter "$data" must be a string.');
+ throw new \InvalidArgumentException('Input parameter "$data" must be a string.');
}
if (!function_exists("mcrypt_encrypt")) {
throw new \SimpleSAML_Error_Exception('The mcrypt PHP module is not loaded.');
@@ -103,13 +108,15 @@ class Crypto
* - 'password': Password for the private key.
*
* @param \SimpleSAML_Configuration $metadata The metadata array the private key should be loaded from.
- * @param bool $required Whether the private key is required. If this is true, a
+ * @param bool $required Whether the private key is required. If this is true, a
* missing key will cause an exception. Defaults to false.
- * @param string $prefix The prefix which should be used when reading from the metadata
+ * @param string $prefix The prefix which should be used when reading from the metadata
* array. Defaults to ''.
*
* @return array|NULL Extracted private key, or NULL if no private key is present.
- * @throws \SimpleSAML_Error_Exception If no private key is found in the metadata, or it was not possible to load it.
+ * @throws \InvalidArgumentException If $required is not boolean or $prefix is not a string.
+ * @throws \SimpleSAML_Error_Exception If no private key is found in the metadata, or it was not possible to load
+ * it.
*
* @author Andreas Solberg, UNINETT AS <andreas.solberg@uninett.no>
* @author Olav Morken, UNINETT AS <olav.morken@uninett.no>
@@ -117,7 +124,7 @@ class Crypto
public static function loadPrivateKey(\SimpleSAML_Configuration $metadata, $required = false, $prefix = '')
{
if (!is_bool($required) || !is_string($prefix)) {
- throw new \SimpleSAML_Error_Exception('Invalid input parameters.');
+ throw new \InvalidArgumentException('Invalid input parameters.');
}
$file = $metadata->getString($prefix.'privatekey', null);
@@ -147,6 +154,7 @@ class Crypto
return $ret;
}
+
/**
* Get public key or certificate from metadata.
*
@@ -164,22 +172,26 @@ class Crypto
* - 'certFingerprint': Array of valid certificate fingerprints. (Only present if this is a certificate.)
*
* @param \SimpleSAML_Configuration $metadata The metadata.
- * @param bool $required Whether the private key is required. If this is TRUE, a missing key
+ * @param bool $required Whether the private key is required. If this is TRUE, a missing key
* will cause an exception. Default is FALSE.
- * @param string $prefix The prefix which should be used when reading from the metadata array.
+ * @param string $prefix The prefix which should be used when reading from the metadata array.
* Defaults to ''.
*
* @return array|NULL Public key or certificate data, or NULL if no public key or certificate was found.
+ * @throws \InvalidArgumentException If $metadata is not an instance of \SimpleSAML_Configuration, $required is not
+ * boolean or $prefix is not a string.
+ * @throws \SimpleSAML_Error_Exception If no private key is found in the metadata, or it was not possible to load
+ * it.
*
- * @throws \SimpleSAML_Error_Exception If no private key is found in the metadata, or it was not possible to load it.
* @author Andreas Solberg, UNINETT AS <andreas.solberg@uninett.no>
* @author Olav Morken, UNINETT AS <olav.morken@uninett.no>
* @author Lasse Birnbaum Jensen
*/
public static function loadPublicKey(\SimpleSAML_Configuration $metadata, $required = false, $prefix = '')
{
- assert('is_bool($required)');
- assert('is_string($prefix)');
+ if (!is_bool($required) || !is_string($prefix)) {
+ throw new \InvalidArgumentException('Invalid input parameters.');
+ }
$keys = $metadata->getPublicKeys(null, false, $prefix);
if ($keys !== null) {
@@ -226,6 +238,7 @@ class Crypto
}
}
+
/**
* This function hashes a password with a given algorithm.
*
@@ -235,16 +248,18 @@ class Crypto
* @param string $salt An optional salt to use.
*
* @return string The hashed password.
- * @throws \SimpleSAML_Error_Exception If the algorithm specified is not supported, or the input parameters are not
- * strings.
+ * @throws \InvalidArgumentException If the input parameters are not strings.
+ * @throws \SimpleSAML_Error_Exception If the algorithm specified is not supported.
+ *
* @see hash_algos()
+ *
* @author Dyonisius Visser, TERENA <visser@terena.org>
* @author Jaime Perez, UNINETT AS <jaime.perez@uninett.no>
*/
public static function pwHash($password, $algorithm, $salt = null)
{
if (!is_string($algorithm) || !is_string($password)) {
- throw new \SimpleSAML_Error_Exception('Invalid input parameters.');
+ throw new \InvalidArgumentException('Invalid input parameters.');
}
// hash w/o salt
@@ -279,14 +294,15 @@ class Crypto
* @param string $password The password to check in clear.
*
* @return boolean True if the hash corresponds with the given password, false otherwise.
- * @throws \SimpleSAML_Error_Exception If the algorithm specified is not supported, or the input parameters are not
- * strings.
+ * @throws \InvalidArgumentException If the input parameters are not strings.
+ * @throws \SimpleSAML_Error_Exception If the algorithm specified is not supported.
+ *
* @author Dyonisius Visser, TERENA <visser@terena.org>
*/
public static function pwValid($hash, $password)
{
if (!is_string($hash) || !is_string($password)) {
- throw new \SimpleSAML_Error_Exception('Invalid input parameters.');
+ throw new \InvalidArgumentException('Invalid input parameters.');
}
// match algorithm string (e.g. '{SSHA256}', '{MD5}')
diff --git a/lib/SimpleSAML/Utils/HTTP.php b/lib/SimpleSAML/Utils/HTTP.php
index 1c80fb8..7518bfa 100644
--- a/lib/SimpleSAML/Utils/HTTP.php
+++ b/lib/SimpleSAML/Utils/HTTP.php
@@ -129,7 +129,7 @@ class HTTP
* the name, without a value.
*
* @return void This function never returns.
- * @throws \SimpleSAML_Error_Exception If $url is not a string or is empty, or $parameters is not an array.
+ * @throws \InvalidArgumentException If $url is not a string or is empty, or $parameters is not an array.
*
* @author Olav Morken, UNINETT AS <olav.morken@uninett.no>
* @author Mads Freek Petersen
@@ -138,7 +138,7 @@ class HTTP
private static function redirect($url, $parameters = array())
{
if (!is_string($url) || empty($url) || !is_array($parameters)) {
- throw new \SimpleSAML_Error_Exception('Invalid input parameters.');
+ throw new \InvalidArgumentException('Invalid input parameters.');
}
if (!empty($parameters)) {
$url = self::addURLParameters($url, $parameters);
@@ -226,7 +226,7 @@ class HTTP
* array.
*
* @return string The URL with the new query parameters.
- * @throws \SimpleSAML_Error_Exception If $url is not a string or $parameters is not an array.
+ * @throws \InvalidArgumentException If $url is not a string or $parameters is not an array.
*
* @author Andreas Solberg, UNINETT AS <andreas.solberg@uninett.no>
* @author Olav Morken, UNINETT AS <olav.morken@uninett.no>
@@ -234,7 +234,7 @@ class HTTP
public static function addURLParameters($url, $parameters)
{
if (!is_string($url) || !is_array($parameters)) {
- throw new \SimpleSAML_Error_Exception('Invalid input parameters.');
+ throw new \InvalidArgumentException('Invalid input parameters.');
}
$queryStart = strpos($url, '?');
@@ -265,14 +265,14 @@ class HTTP
*
* @return void If there is a session cookie, nothing will be returned. Otherwise, the user will be redirected to a
* page telling about the missing cookie.
- * @throws \SimpleSAML_Error_Exception If $retryURL is neither a string nor null.
+ * @throws \InvalidArgumentException If $retryURL is neither a string nor null.
*
* @author Olav Morken, UNINETT AS <olav.morken@uninett.no>
*/
public static function checkSessionCookie($retryURL = null)
{
if (!is_string($retryURL) || !is_null($retryURL)) {
- throw new \SimpleSAML_Error_Exception('Invalid input parameters.');
+ throw new \InvalidArgumentException('Invalid input parameters.');
}
$session = \SimpleSAML_Session::getSessionFromRequest();
@@ -299,7 +299,8 @@ class HTTP
*
* @return string The normalized URL itself if it is allowed. An empty string if the $url parameter is empty as
* defined by the empty() function.
- * @throws \SimpleSAML_Error_Exception if the URL is malformed or is not allowed by configuration.
+ * @throws \InvalidArgumentException If the URL is malformed.
+ * @throws \SimpleSAML_Error_Exception If the URL is not allowed by configuration.
*
* @author Jaime Perez, UNINETT AS <jaime.perez@uninett.no>
*/
@@ -348,7 +349,8 @@ class HTTP
* @param boolean $getHeaders Whether to also return response headers. Optional.
*
* @return mixed array if $getHeaders is set, string otherwise
- * @throws \SimpleSAML_Error_Exception If the input parameters are invalid or the file or URL cannot be retrieved.
+ * @throws \InvalidArgumentException If the input parameters are invalid.
+ * @throws \SimpleSAML_Error_Exception If the file or URL cannot be retrieved.
*
* @author Andjelko Horvat
* @author Olav Morken, UNINETT AS <olav.morken@uninett.no>
@@ -357,7 +359,7 @@ class HTTP
public static function fetch($url, $context = array(), $getHeaders = false)
{
if (!is_string($url)) {
- throw new \SimpleSAML_Error_Exception('Invalid input parameters.');
+ throw new \InvalidArgumentException('Invalid input parameters.');
}
$config = \SimpleSAML_Configuration::getInstance();
@@ -562,7 +564,7 @@ class HTTP
* @param array $data The name-value pairs which will be posted to the destination.
*
* @return string A URL which can be accessed to post the data.
- * @throws \SimpleSAML_Error_Exception If $destination is not a string or $data is not an array.
+ * @throws \InvalidArgumentException If $destination is not a string or $data is not an array.
*
* @author Andjelko Horvat
* @author Jaime Perez, UNINETT AS <jaime.perez@uninett.no>
@@ -570,7 +572,7 @@ class HTTP
public static function getPOSTRedirectURL($destination, $data)
{
if (!is_string($destination) || !is_array($data)) {
- throw new \SimpleSAML_Error_Exception('Invalid input parameters.');
+ throw new \InvalidArgumentException('Invalid input parameters.');
}
$config = \SimpleSAML_Configuration::getInstance();
@@ -704,7 +706,7 @@ class HTTP
* @param string $url The relative URL.
*
* @return string An absolute URL for the given relative URL.
- * @throws \SimpleSAML_Error_Exception If $url is not a string or a valid URL.
+ * @throws \InvalidArgumentException If $url is not a string or a valid URL.
*
* @author Olav Morken, UNINETT AS <olav.morken@uninett.no>
* @author Jaime Perez, UNINETT AS <jaime.perez@uninett.no>
@@ -712,14 +714,14 @@ class HTTP
public static function normalizeURL($url)
{
if (!is_string($url)) {
- throw new \SimpleSAML_Error_Exception('Invalid input parameters.');
+ throw new \InvalidArgumentException('Invalid input parameters.');
}
$url = self::resolveURL($url, self::getSelfURL());
// verify that the URL is to a http or https site
if (!preg_match('@^https?://@i', $url)) {
- throw new \SimpleSAML_Error_Exception('Invalid URL: '.$url);
+ throw new \InvalidArgumentException('Invalid URL: '.$url);
}
return $url;
@@ -737,14 +739,14 @@ class HTTP
* @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.
+ * @throws \InvalidArgumentException 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.');
+ throw new \InvalidArgumentException('Invalid input parameters.');
}
$res = array();
@@ -780,14 +782,14 @@ class HTTP
* name, without a value.
*
* @return void This function never returns.
- * @throws \SimpleSAML_Error_Exception If $url is not a string or $parameters is not an array.
+ * @throws \InvalidArgumentException If $url is not a string or $parameters is not an array.
*
* @author Jaime Perez, UNINETT AS <jaime.perez@uninett.no>
*/
public static function redirectTrustedURL($url, $parameters = array())
{
if (!is_string($url) || !is_array($parameters)) {
- throw new \SimpleSAML_Error_Exception('Invalid input parameters.');
+ throw new \InvalidArgumentException('Invalid input parameters.');
}
$url = self::normalizeURL($url);
@@ -812,14 +814,14 @@ class HTTP
* name, without a value.
*
* @return void This function never returns.
- * @throws \SimpleSAML_Error_Exception If $url is not a string or $parameters is not an array.
+ * @throws \InvalidArgumentException If $url is not a string or $parameters is not an array.
*
* @author Jaime Perez, UNINETT AS <jaime.perez@uninett.no>
*/
public static function redirectUntrustedURL($url, $parameters = array())
{
if (!is_string($url) || !is_array($parameters)) {
- throw new \SimpleSAML_Error_Exception('Invalid input parameters.');
+ throw new \InvalidArgumentException('Invalid input parameters.');
}
$url = self::checkURLAllowed($url);
@@ -842,7 +844,7 @@ class HTTP
* @param string $base The base URL. Defaults to the base URL of this installation of SimpleSAMLphp.
*
* @return string An absolute URL for the given relative URL.
- * @throws \SimpleSAML_Error_Exception If the base URL cannot be parsed into a valid URL, or the given parameters
+ * @throws \InvalidArgumentException If the base URL cannot be parsed into a valid URL, or the given parameters
* are not strings.
*
* @author Olav Morken, UNINETT AS <olav.morken@uninett.no>
@@ -855,11 +857,11 @@ class HTTP
}
if (!is_string($url) || !is_string($base)) {
- throw new \SimpleSAML_Error_Exception('Invalid input parameters.');
+ throw new \InvalidArgumentException('Invalid input parameters.');
}
if (!preg_match('/^((((\w+:)\/\/[^\/]+)(\/[^?#]*))(?:\?[^#]*)?)(?:#.*)?/', $base, $baseParsed)) {
- throw new \SimpleSAML_Error_Exception('Unable to parse base url: '.$base);
+ throw new \InvalidArgumentException('Unable to parse base url: '.$base);
}
$baseDir = dirname($baseParsed[5].'filename');
@@ -922,8 +924,8 @@ class HTTP
* @param array|NULL $params Cookie parameters.
* @param bool $throw Whether to throw exception if setcookie() fails.
*
- * @throws \SimpleSAML_Error_Exception If any parameter has an incorrect type or the if the headers were already
- * sent and the cookie cannot be set.
+ * @throws \InvalidArgumentException If any parameter has an incorrect type.
+ * @throws \SimpleSAML_Error_Exception If the headers were already sent and the cookie cannot be set.
*
* @author Andjelko Horvat
* @author Jaime Perez, UNINETT AS <jaime.perez@uninett.no>
@@ -935,7 +937,7 @@ class HTTP
(is_array($params) || is_null($params)) && // $params can be an array or null
is_bool($throw)) // $throw must be boolean
) {
- throw new \SimpleSAML_Error_Exception('Invalid input parameters.');
+ throw new \InvalidArgumentException('Invalid input parameters.');
}
$default_params = array(
@@ -996,7 +998,7 @@ class HTTP
* @param string $destination The destination URL.
* @param array $data An associative array with the data to be posted to $destination.
*
- * @throws \SimpleSAML_Error_Exception If $destination is not a string or $data is not an array.
+ * @throws \InvalidArgumentException If $destination is not a string or $data is not an array.
*
* @author Olav Morken, UNINETT AS <olav.morken@uninett.no>
* @author Andjelko Horvat
@@ -1005,7 +1007,7 @@ class HTTP
public static function submitPOSTData($destination, $data)
{
if (!is_string($destination) || !is_array($data)) {
- throw new \SimpleSAML_Error_Exception('Invalid input parameters.');
+ throw new \InvalidArgumentException('Invalid input parameters.');
}
$config = \SimpleSAML_Configuration::getInstance();
diff --git a/lib/SimpleSAML/Utils/System.php b/lib/SimpleSAML/Utils/System.php
index 6a01c59..8889251 100644
--- a/lib/SimpleSAML/Utils/System.php
+++ b/lib/SimpleSAML/Utils/System.php
@@ -156,8 +156,9 @@ class System
* @param string $data The data we should write to the file.
* @param int $mode The permissions to apply to the file. Defaults to 0600.
*
- * @throws \SimpleSAML_Error_Exception If any of the input parameters doesn't have the proper types, or the file
- * cannot be saved, permissions cannot be changed or it is not possible to write to the target file.
+ * @throws \InvalidArgumentException If any of the input parameters doesn't have the proper types.
+ * @throws \SimpleSAML_Error_Exception If the file cannot be saved, permissions cannot be changed or it is not
+ * possible to write to the target file.
*
* @author Andreas Solberg, UNINETT AS <andreas.solberg@uninett.no>
* @author Olav Morken, UNINETT AS <olav.morken@uninett.no>
@@ -167,7 +168,7 @@ class System
public static function writeFile($filename, $data, $mode = 0600)
{
if (!is_string($filename) || !is_string($data) || !is_numeric($mode)) {
- throw new \SimpleSAML_Error_Exception('Invalid input parameters');
+ throw new \InvalidArgumentException('Invalid input parameters');
}
$tmpFile = self::getTempDir().DIRECTORY_SEPARATOR.rand();
diff --git a/lib/SimpleSAML/Utils/Time.php b/lib/SimpleSAML/Utils/Time.php
index 55e156e..9898f8b 100644
--- a/lib/SimpleSAML/Utils/Time.php
+++ b/lib/SimpleSAML/Utils/Time.php
@@ -81,19 +81,19 @@ class Time
* time.
*
* @return int The new timestamp, after the duration is applied.
- * @throws \SimpleSAML_Error_Exception If $duration is not a valid ISO 8601 duration or if the input parameters do
+ * @throws \InvalidArgumentException If $duration is not a valid ISO 8601 duration or if the input parameters do
* not have the right data types.
*/
public static function parseDuration($duration, $timestamp = null)
{
if (!(is_string($duration) && (is_int($timestamp) || is_null($timestamp)))) {
- throw new \SimpleSAML_Error_Exception('Invalid input parameters');
+ throw new \InvalidArgumentException('Invalid input parameters');
}
// parse the duration. We use a very strict pattern
$durationRegEx = '#^(-?)P(?:(?:(?:(\\d+)Y)?(?:(\\d+)M)?(?:(\\d+)D)?(?:T(?:(\\d+)H)?(?:(\\d+)M)?(?:(\\d+)(?:[.,]\d+)?S)?)?)|(?:(\\d+)W))$#D';
if (!preg_match($durationRegEx, $duration, $matches)) {
- throw new \SimpleSAML_Error_Exception('Invalid ISO 8601 duration: '.$duration);
+ throw new \InvalidArgumentException('Invalid ISO 8601 duration: '.$duration);
}
$durYears = (empty($matches[2]) ? 0 : (int) $matches[2]);
diff --git a/lib/SimpleSAML/Utils/XML.php b/lib/SimpleSAML/Utils/XML.php
index 1483a71..bd09a31 100644
--- a/lib/SimpleSAML/Utils/XML.php
+++ b/lib/SimpleSAML/Utils/XML.php
@@ -73,14 +73,14 @@ class XML
* - 'decrypt': for decrypted messages.
* - 'encrypt': for encrypted messages.
*
- * @throws \SimpleSAML_Error_Exception If $type is not a string or $message is neither a string nor a \DOMElement.
+ * @throws \InvalidArgumentException If $type is not a string or $message is neither a string nor a \DOMElement.
*
* @author Olav Morken, UNINETT AS <olav.morken@uninett.no>
*/
public static function debugSAMLMessage($message, $type)
{
if (!(is_string($type) && (is_string($message) || $message instanceof \DOMElement))) {
- throw new \SimpleSAML_Error_Exception('Invalid input parameters.');
+ throw new \InvalidArgumentException('Invalid input parameters.');
}
$globalConfig = \SimpleSAML_Configuration::getInstance();
@@ -127,13 +127,14 @@ class XML
* @param string $indentBase The indentation this element should be assumed to have. Defaults to an empty
* string.
*
- * @throws \SimpleSAML_Error_Exception If $root is not a DOMElement or $indentBase is not a string.
+ * @throws \InvalidArgumentException If $root is not a DOMElement or $indentBase is not a string.
+ *
* @author Olav Morken, UNINETT AS <olav.morken@uninett.no>
*/
public static function formatDOMElement(\DOMElement $root, $indentBase = '')
{
if (!is_string($indentBase)) {
- throw new \SimpleSAML_Error_Exception('Invalid input parameters');
+ throw new \InvalidArgumentException('Invalid input parameters');
}
// check what this element contains
@@ -214,19 +215,20 @@ class XML
* to ''.
*
* @return string The formatted string.
- * @throws \SimpleSAML_Error_Exception If the input does not parse correctly as an XML string or parameters are not
- * strings.
+ * @throws \InvalidArgumentException If the parameters are not strings.
+ * @throws \DOMException If the input does not parse correctly as an XML string.
+ *
* @author Olav Morken, UNINETT AS <olav.morken@uninett.no>
*/
public static function formatXMLString($xml, $indentBase = '')
{
if (!is_string($xml) || !is_string($indentBase)) {
- throw new \SimpleSAML_Error_Exception('Invalid input parameters');
+ throw new \InvalidArgumentException('Invalid input parameters');
}
$doc = new \DOMDocument();
if (!$doc->loadXML($xml)) {
- throw new \SimpleSAML_Error_Exception('Error parsing XML string.');
+ throw new \DOMException('Error parsing XML string.');
}
$root = $doc->firstChild;
@@ -248,11 +250,14 @@ class XML
*
* @return array Array with the matching elements in the order they are found. An empty array is
* returned if no elements match.
+ * @throws \InvalidArgumentException If $element is not an instance of DOMElement, $localName is not a string or
+ * $namespaceURI is not a string.
*/
public static function getDOMChildren(\DOMElement $element, $localName, $namespaceURI)
{
- assert('is_string($localName)');
- assert('is_string($namespaceURI)');
+ if (!($element instanceof \DOMElement) || !is_string($localName) || !is_string($namespaceURI)) {
+ throw new \InvalidArgumentException('Invalid input parameters.');
+ }
$ret = array();
@@ -279,13 +284,15 @@ class XML
* @param \DOMElement $element The element we should extract text from.
*
* @return string The text content of the element.
+ * @throws \InvalidArgumentException If $element is not an instance of DOMElement.
* @throws \SimpleSAML_Error_Exception If the element contains a non-text child node.
+ *
* @author Olav Morken, UNINETT AS <olav.morken@uninett.no>
*/
public static function getDOMText(\DOMElement $element)
{
if (!($element instanceof \DOMElement)) {
- throw new \SimpleSAML_Error_Exception('Invalid input parameters');
+ throw new \InvalidArgumentException('Invalid input parameters');
}
$txt = '';
@@ -321,7 +328,7 @@ class XML
* @param string $nsURI The namespaceURI the element should have.
*
* @return boolean True if both namespace and local name matches, false otherwise.
- * @throws \SimpleSAML_Error_Exception If the namespace shortcut is unknown.
+ * @throws \InvalidArgumentException If the namespace shortcut is unknown.
*
* @author Andreas Solberg, UNINETT AS <andreas.solberg@uninett.no>
* @author Olav Morken, UNINETT AS <olav.morken@uninett.no>
@@ -349,7 +356,7 @@ class XML
// check if it is a valid shortcut
if (!array_key_exists($nsURI, $shortcuts)) {
- throw new \SimpleSAML_Error_Exception('Unknown namespace shortcut: '.$nsURI);
+ throw new \InvalidArgumentException('Unknown namespace shortcut: '.$nsURI);
}
// expand the shortcut