-
Tim van Dijen authored194d60f4
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
<?php
// initialize the autoloader
require_once(dirname(dirname(__FILE__)) . '/lib/_autoload.php');
// show error page on unhandled exceptions
function SimpleSAML_exception_handler($exception): void
{
\SimpleSAML\Module::callHooks('exception_handler', $exception);
if ($exception instanceof \SimpleSAML\Error\Error) {
$exception->show();
} elseif ($exception instanceof \Exception) {
$e = new \SimpleSAML\Error\Error('UNHANDLEDEXCEPTION', $exception);
$e->show();
} elseif (class_exists('Error') && $exception instanceof \Error) {
$e = new \SimpleSAML\Error\Error('UNHANDLEDEXCEPTION', $exception);
$e->show();
}
}
set_exception_handler('SimpleSAML_exception_handler');
// log full backtrace on errors and warnings
/**
* @return false
*/
function SimpleSAML_error_handler(
$errno,
$errstr,
$errfile = null,
$errline = 0,
/** @scrutinizer ignore-unused */ $errcontext = null
): bool {
if (\SimpleSAML\Logger::isErrorMasked($errno)) {
// masked error
return false;
}
static $limit = 5;
$limit -= 1;
if ($limit < 0) {
// we have reached the limit in the number of backtraces we will log
return false;
}
// show an error with a full backtrace
$context = (is_null($errfile) ? '' : " at $errfile:$errline");
$e = new \SimpleSAML\Error\Exception('Error ' . $errno . ' - ' . $errstr . $context);
$e->logError();
// resume normal error processing
return false;
}
set_error_handler('SimpleSAML_error_handler');
try {
\SimpleSAML\Configuration::getInstance();
} catch (\Exception $e) {
throw new \SimpleSAML\Error\CriticalConfigurationError(
$e->getMessage()
);
}
// set the timezone
$timeUtils = new \SimpleSAML\Utils\Time();
$timeUtils->initTimezone();
// set the SAML2 container
$container = new \SimpleSAML\Compat\SspContainer();
\SAML2\Compat\ContainerSingleton::setContainer($container);