summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorOlav Morken <olav.morken@uninett.no>2011-04-12 13:44:19 +0000
committerOlav Morken <olav.morken@uninett.no>2011-04-12 13:44:19 +0000
commit7644eb4e1b811d1a3e65ac5e1b0e2399e7debe2c (patch)
treec44f52fee311bd58697c01645a5a8fc5d98f9fed
parent4f096edc1a10e9fb5be9379927a92ede27f3055e (diff)
downloadsimplesamlphp-7644eb4e1b811d1a3e65ac5e1b0e2399e7debe2c.zip
simplesamlphp-7644eb4e1b811d1a3e65ac5e1b0e2399e7debe2c.tar.gz
simplesamlphp-7644eb4e1b811d1a3e65ac5e1b0e2399e7debe2c.tar.bz2
Update Error_AuthSource to become a standard base class for authsource
errors. Thanks to Andjelko Horvat for adding this. git-svn-id: https://simplesamlphp.googlecode.com/svn/trunk@2812 44740490-163a-0410-bde0-09ae8108e29a
-rw-r--r--dictionaries/errors.definition.json6
-rw-r--r--dictionaries/errors.translation.json6
-rw-r--r--lib/SimpleSAML/Auth/LDAP.php8
-rw-r--r--lib/SimpleSAML/Error/AuthSource.php59
4 files changed, 73 insertions, 6 deletions
diff --git a/dictionaries/errors.definition.json b/dictionaries/errors.definition.json
index b2d6cfb..c1b1866 100644
--- a/dictionaries/errors.definition.json
+++ b/dictionaries/errors.definition.json
@@ -211,5 +211,11 @@
},
"descr_METADATANOTFOUND": {
"en": "Unable to locate metadata for %ENTITYID%"
+ },
+ "title_AUTHSOURCEERROR": {
+ "en": "Authentication source error"
+ },
+ "descr_AUTHSOURCEERROR": {
+ "en": "Authentication error in source %AUTHSOURCE%. The reason was: %REASON%"
}
}
diff --git a/dictionaries/errors.translation.json b/dictionaries/errors.translation.json
index 23a5fe5..eae8c46 100644
--- a/dictionaries/errors.translation.json
+++ b/dictionaries/errors.translation.json
@@ -1498,5 +1498,11 @@
"hr": "Metapodaci za %ENTITYID% nisu prona\u0111eni",
"it": "Impossibile individuare i metatadi per %ENTITYID%",
"sv": "Kan inte hitta metadata f\u00f6r %ENTITYID%"
+ },
+ "title_AUTHSOURCEERROR": {
+ "hr": "Pogreška u autentikacijskom modulu"
+ },
+ "descr_AUTHSOURCEERROR": {
+ "hr": "Pogreška u %AUTHSOURCE% autentikacijskom modulu. Razlog: %REASON%"
}
}
diff --git a/lib/SimpleSAML/Auth/LDAP.php b/lib/SimpleSAML/Auth/LDAP.php
index 503fefc..dc2aaa3 100644
--- a/lib/SimpleSAML/Auth/LDAP.php
+++ b/lib/SimpleSAML/Auth/LDAP.php
@@ -136,9 +136,9 @@ class SimpleSAML_Auth_LDAP {
case ERR_WRONG_PW:// 3 - ExInvalidCredential
return new SimpleSAML_Error_InvalidCredential($description, $errNo);
case ERR_AS_DATA_INCONSIST:// 4 - ExAsDataInconsist
- return new SimpleSAML_Error_AuthSource($description, $errNo);
+ return new SimpleSAML_Error_AuthSource('ldap', $description);
case ERR_AS_INTERNAL:// 5 - ExAsInternal
- return new SimpleSAML_Error_AuthSource($description, $errNo);
+ return new SimpleSAML_Error_AuthSource('ldap', $description);
}
}else{
switch ($errNo){
@@ -150,10 +150,10 @@ class SimpleSAML_Auth_LDAP {
return new SimpleSAML_Error_InvalidCredential($description, $errNo);
case -1://NO_SERVER_CONNECTION
SimpleSAML_Logger::error($description . '; cause: \'' . ldap_error($this->ldap) . '\' (0x' . dechex($errNo) . ')');
- return new SimpleSAML_Error_AuthSource($description, $errNo);
+ return new SimpleSAML_Error_AuthSource('ldap', $description);
default:
SimpleSAML_Logger::error($description . '; cause: \'' . ldap_error($this->ldap) . '\' (0x' . dechex($errNo) . ')');
- return new SimpleSAML_Error_AuthSource($description, $errNo);
+ return new SimpleSAML_Error_AuthSource('ldap', $description);
}
}
}
diff --git a/lib/SimpleSAML/Error/AuthSource.php b/lib/SimpleSAML/Error/AuthSource.php
index 6e353d5..7df5cad 100644
--- a/lib/SimpleSAML/Error/AuthSource.php
+++ b/lib/SimpleSAML/Error/AuthSource.php
@@ -2,12 +2,67 @@
/**
* Baseclass for auth source exceptions.
*
- * @author Thomas Graff <thomas.graff@uninett.no>
* @package simpleSAMLphp_base
* @version $Id$
*
*/
-class SimpleSAML_Error_AuthSource extends SimpleSAML_Error_Exception{
+class SimpleSAML_Error_AuthSource extends SimpleSAML_Error_Error {
+
+
+ /**
+ * Authsource module name.
+ */
+ private $authsource;
+
+
+ /**
+ * Reason why this request was invalid.
+ */
+ private $reason;
+
+
+ /**
+ * Create a new AuthSource error.
+ *
+ * @param string $authsource Authsource module name from where this error was thrown.
+ * @param string $reason Description of the error.
+ */
+ public function __construct($authsource, $reason, $cause = NULL) {
+ assert('is_string($authsource)');
+ assert('is_string($reason)');
+
+ $this->authsource = $authsource;
+ $this->reason = $reason;
+ parent::__construct(
+ array(
+ 'AUTHSOURCEERROR',
+ '%AUTHSOURCE%' => htmlspecialchars(var_export($this->authsource, TRUE)),
+ '%REASON%' => htmlspecialchars(var_export($this->reason, TRUE))
+ ),
+ $cause
+ );
+ }
+
+
+ /**
+ * Retrieve the authsource module name from where this error was thrown.
+ *
+ * @return string Authsource module name.
+ */
+ public function getAuthSource() {
+ return $this->authsource;
+ }
+
+
+ /**
+ * Retrieve the reason why the request was invalid.
+ *
+ * @return string The reason why the request was invalid.
+ */
+ public function getReason() {
+ return $this->reason;
+ }
+
}