Skip to content
Snippets Groups Projects
Commit 7644eb4e authored by Olav Morken's avatar Olav Morken
Browse files

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
parent 4f096edc
No related branches found
No related tags found
No related merge requests found
...@@ -211,5 +211,11 @@ ...@@ -211,5 +211,11 @@
}, },
"descr_METADATANOTFOUND": { "descr_METADATANOTFOUND": {
"en": "Unable to locate metadata for %ENTITYID%" "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%"
} }
} }
...@@ -1498,5 +1498,11 @@ ...@@ -1498,5 +1498,11 @@
"hr": "Metapodaci za %ENTITYID% nisu prona\u0111eni", "hr": "Metapodaci za %ENTITYID% nisu prona\u0111eni",
"it": "Impossibile individuare i metatadi per %ENTITYID%", "it": "Impossibile individuare i metatadi per %ENTITYID%",
"sv": "Kan inte hitta metadata f\u00f6r %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%"
} }
} }
...@@ -136,9 +136,9 @@ class SimpleSAML_Auth_LDAP { ...@@ -136,9 +136,9 @@ class SimpleSAML_Auth_LDAP {
case ERR_WRONG_PW:// 3 - ExInvalidCredential case ERR_WRONG_PW:// 3 - ExInvalidCredential
return new SimpleSAML_Error_InvalidCredential($description, $errNo); return new SimpleSAML_Error_InvalidCredential($description, $errNo);
case ERR_AS_DATA_INCONSIST:// 4 - ExAsDataInconsist 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 case ERR_AS_INTERNAL:// 5 - ExAsInternal
return new SimpleSAML_Error_AuthSource($description, $errNo); return new SimpleSAML_Error_AuthSource('ldap', $description);
} }
}else{ }else{
switch ($errNo){ switch ($errNo){
...@@ -150,10 +150,10 @@ class SimpleSAML_Auth_LDAP { ...@@ -150,10 +150,10 @@ class SimpleSAML_Auth_LDAP {
return new SimpleSAML_Error_InvalidCredential($description, $errNo); return new SimpleSAML_Error_InvalidCredential($description, $errNo);
case -1://NO_SERVER_CONNECTION case -1://NO_SERVER_CONNECTION
SimpleSAML_Logger::error($description . '; cause: \'' . ldap_error($this->ldap) . '\' (0x' . dechex($errNo) . ')'); 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: default:
SimpleSAML_Logger::error($description . '; cause: \'' . ldap_error($this->ldap) . '\' (0x' . dechex($errNo) . ')'); 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);
} }
} }
} }
......
...@@ -2,12 +2,67 @@ ...@@ -2,12 +2,67 @@
/** /**
* Baseclass for auth source exceptions. * Baseclass for auth source exceptions.
* *
* @author Thomas Graff <thomas.graff@uninett.no>
* @package simpleSAMLphp_base * @package simpleSAMLphp_base
* @version $Id$ * @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;
}
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment