Beispiel #1
0
 /**
  * Constructor for this error.
  *
  * The error can either be given as a string, or as an array. If it is an array, the first element in the array
  * (with index 0), is the error code, while the other elements are replacements for the error text.
  *
  * @param mixed     $errorCode One of the error codes defined in the errors dictionary.
  * @param Exception $cause The exception which caused this fatal error (if any). Optional.
  * @param int|null  $httpCode The HTTP response code to use. Optional.
  */
 public function __construct($errorCode, Exception $cause = null, $httpCode = null)
 {
     assert('is_string($errorCode) || is_array($errorCode)');
     if (is_array($errorCode)) {
         $this->parameters = $errorCode;
         unset($this->parameters[0]);
         $this->errorCode = $errorCode[0];
     } else {
         $this->parameters = array();
         $this->errorCode = $errorCode;
     }
     if (isset($httpCode)) {
         $this->httpCode = $httpCode;
     }
     $moduleCode = explode(':', $this->errorCode, 2);
     if (count($moduleCode) === 2) {
         $this->module = $moduleCode[0];
         $this->dictTitle = '{' . $this->module . ':errors:title_' . $moduleCode[1] . '}';
         $this->dictDescr = '{' . $this->module . ':errors:descr_' . $moduleCode[1] . '}';
     } else {
         $this->dictTitle = SimpleSAML\Error\ErrorCodes::getErrorCodeTitle($this->errorCode);
         $this->dictDescr = SimpleSAML\Error\ErrorCodes::getErrorCodeDescription($this->errorCode);
     }
     if (!empty($this->parameters)) {
         $msg = $this->errorCode . '(';
         foreach ($this->parameters as $k => $v) {
             if ($k === 0) {
                 continue;
             }
             $msg .= var_export($k, true) . ' => ' . var_export($v, true) . ', ';
         }
         $msg = substr($msg, 0, -2) . ')';
     } else {
         $msg = $this->errorCode;
     }
     parent::__construct($msg, -1, $cause);
 }
$t = new SimpleSAML_XHTML_Template($globalConfig, 'core:loginuserpass.php');
$t->data['stateparams'] = array('AuthState' => $authStateId);
if (array_key_exists('forcedUsername', $state)) {
    $t->data['username'] = $state['forcedUsername'];
    $t->data['forceUsername'] = TRUE;
    $t->data['rememberUsernameEnabled'] = FALSE;
    $t->data['rememberUsernameChecked'] = FALSE;
    $t->data['rememberMeEnabled'] = $source->isRememberMeEnabled();
    $t->data['rememberMeChecked'] = $source->isRememberMeChecked();
} else {
    $t->data['username'] = $username;
    $t->data['forceUsername'] = FALSE;
    $t->data['rememberUsernameEnabled'] = $source->getRememberUsernameEnabled();
    $t->data['rememberUsernameChecked'] = $source->getRememberUsernameChecked();
    $t->data['rememberMeEnabled'] = $source->isRememberMeEnabled();
    $t->data['rememberMeChecked'] = $source->isRememberMeChecked();
    if (isset($_COOKIE[$source->getAuthId() . '-username'])) {
        $t->data['rememberUsernameChecked'] = TRUE;
    }
}
$t->data['links'] = $source->getLoginLinks();
$t->data['errorcode'] = $errorCode;
$t->data['errorcodes'] = SimpleSAML\Error\ErrorCodes::getAllErrorCodeMessages();
$t->data['errorparams'] = $errorParams;
if (isset($state['SPMetadata'])) {
    $t->data['SPMetadata'] = $state['SPMetadata'];
} else {
    $t->data['SPMetadata'] = NULL;
}
$t->show();
exit;