From 24aac91f5094692c63e34b650e5be7dbf93b7a74 Mon Sep 17 00:00:00 2001 From: Jaime Perez Crespo <jaime.perez@uninett.no> Date: Thu, 16 Apr 2015 17:15:21 +0200 Subject: [PATCH] Move SimpleSAML_Utilities::requireAdmin() to SimpleSAML_Utils_Auth::requireAdmin(). Deprecate the former and stop using it. --- lib/SimpleSAML/Utilities.php | 19 ++------------ lib/SimpleSAML/Utils/Auth.php | 27 ++++++++++++++++++++ modules/adfs/www/idp/metadata.php | 2 +- modules/core/www/frontpage_auth.php | 2 +- modules/core/www/frontpage_config.php | 2 +- modules/core/www/frontpage_federation.php | 2 +- modules/core/www/frontpage_welcome.php | 2 +- modules/core/www/login-admin.php | 2 +- modules/core/www/show_metadata.php | 2 +- modules/cron/www/croninfo.php | 2 +- modules/logpeek/www/index.php | 2 +- modules/memcacheMonitor/www/memcachestat.php | 2 +- modules/metarefresh/www/fetch.php | 2 +- modules/saml/www/idp/certs.php | 2 +- modules/saml/www/sp/metadata.php | 2 +- modules/statistics/lib/AccessCheck.php | 2 +- www/admin/hostnames.php | 2 +- www/admin/metadata-converter.php | 2 +- www/admin/phpinfo.php | 2 +- www/saml2/idp/metadata.php | 2 +- www/shib13/idp/metadata.php | 2 +- 21 files changed, 48 insertions(+), 36 deletions(-) diff --git a/lib/SimpleSAML/Utilities.php b/lib/SimpleSAML/Utilities.php index 4003f4437..0a455ac87 100644 --- a/lib/SimpleSAML/Utilities.php +++ b/lib/SimpleSAML/Utilities.php @@ -1360,25 +1360,10 @@ class SimpleSAML_Utilities { /** - * Require admin access for current page. - * - * This is a helper-function for limiting a page to admin access. It will redirect - * the user to a login page if the current user doesn't have admin access. + * @deprecated This function will be removed in SSP 2.0. Please use SimpleSAML_Utils_Auth::requireAdmin() instead. */ public static function requireAdmin() { - - if (SimpleSAML_Utils_Auth::isAdmin()) { - return; - } - - /* Not authenticated as admin user. Start authentication. */ - - if (SimpleSAML_Auth_Source::getById('admin') !== NULL) { - $as = new SimpleSAML_Auth_Simple('admin'); - $as->login(); - } else { - throw new Exception('Cannot find "admin" auth source, and admin privileges are required.'); - } + return SimpleSAML_Utils_Auth::requireAdmin(); } diff --git a/lib/SimpleSAML/Utils/Auth.php b/lib/SimpleSAML/Utils/Auth.php index 439daa133..d9575c018 100644 --- a/lib/SimpleSAML/Utils/Auth.php +++ b/lib/SimpleSAML/Utils/Auth.php @@ -21,4 +21,31 @@ class SimpleSAML_Utils_Auth $session = SimpleSAML_Session::getSessionFromRequest(); return $session->isValid('admin') || $session->isValid('login-admin'); } + + /** + * Require admin access to the current page. + * + * This is a helper function for limiting a page to those with administrative access. It will redirect the user to + * 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. + * + * @author Olav Morken, UNINETT AS <olav.morken@uninett.no> + * @author Jaime Perez, UNINETT AS <jaime.perez@uninett.no> + */ + public static function requireAdmin() + { + if (SimpleSAML_Utils_Auth::isAdmin()) { + return; + } + + // not authenticated as admin user, start authentication + if (SimpleSAML_Auth_Source::getById('admin') !== null) { + $as = new SimpleSAML_Auth_Simple('admin'); + $as->login(); + } else { + throw new SimpleSAML_Error_Exception('Cannot find "admin" auth source, and admin privileges are required.'); + } + } } \ No newline at end of file diff --git a/modules/adfs/www/idp/metadata.php b/modules/adfs/www/idp/metadata.php index 40ddfa547..34c6ad8c7 100644 --- a/modules/adfs/www/idp/metadata.php +++ b/modules/adfs/www/idp/metadata.php @@ -9,7 +9,7 @@ if (!$config->getBoolean('enable.adfs-idp', false)) /* Check if valid local session exists.. */ if ($config->getBoolean('admin.protectmetadata', false)) { - SimpleSAML_Utilities::requireAdmin(); + SimpleSAML_Utils_Auth::requireAdmin(); } diff --git a/modules/core/www/frontpage_auth.php b/modules/core/www/frontpage_auth.php index 2db5dc0b5..324867ef7 100644 --- a/modules/core/www/frontpage_auth.php +++ b/modules/core/www/frontpage_auth.php @@ -7,7 +7,7 @@ $session = SimpleSAML_Session::getSessionFromRequest(); /* Check if valid local session exists.. */ if ($config->getBoolean('admin.protectindexpage', false)) { - SimpleSAML_Utilities::requireAdmin(); + SimpleSAML_Utils_Auth::requireAdmin(); } $loginurl = SimpleSAML_Utilities::getAdminLoginURL(); $isadmin = SimpleSAML_Utils_Auth::isAdmin(); diff --git a/modules/core/www/frontpage_config.php b/modules/core/www/frontpage_config.php index eee1fa639..ee9dbc1d4 100644 --- a/modules/core/www/frontpage_config.php +++ b/modules/core/www/frontpage_config.php @@ -8,7 +8,7 @@ $session = SimpleSAML_Session::getSessionFromRequest(); /* Check if valid local session exists.. */ if ($config->getBoolean('admin.protectindexpage', false)) { - SimpleSAML_Utilities::requireAdmin(); + SimpleSAML_Utils_Auth::requireAdmin(); } $loginurl = SimpleSAML_Utilities::getAdminLoginURL(); $isadmin = SimpleSAML_Utils_Auth::isAdmin(); diff --git a/modules/core/www/frontpage_federation.php b/modules/core/www/frontpage_federation.php index 02f6d9eaf..e640f2188 100644 --- a/modules/core/www/frontpage_federation.php +++ b/modules/core/www/frontpage_federation.php @@ -8,7 +8,7 @@ $session = SimpleSAML_Session::getSessionFromRequest(); /* Check if valid local session exists.. */ if ($config->getBoolean('admin.protectindexpage', false)) { - SimpleSAML_Utilities::requireAdmin(); + SimpleSAML_Utils_Auth::requireAdmin(); } $loginurl = SimpleSAML_Utilities::getAdminLoginURL(); $isadmin = SimpleSAML_Utils_Auth::isAdmin(); diff --git a/modules/core/www/frontpage_welcome.php b/modules/core/www/frontpage_welcome.php index 1bea6471d..95818c467 100644 --- a/modules/core/www/frontpage_welcome.php +++ b/modules/core/www/frontpage_welcome.php @@ -7,7 +7,7 @@ $session = SimpleSAML_Session::getSessionFromRequest(); /* Check if valid local session exists.. */ if ($config->getBoolean('admin.protectindexpage', false)) { - SimpleSAML_Utilities::requireAdmin(); + SimpleSAML_Utils_Auth::requireAdmin(); } $loginurl = SimpleSAML_Utilities::getAdminLoginURL(); $isadmin = SimpleSAML_Utils_Auth::isAdmin(); diff --git a/modules/core/www/login-admin.php b/modules/core/www/login-admin.php index 3e6438f3e..bab9b0c55 100644 --- a/modules/core/www/login-admin.php +++ b/modules/core/www/login-admin.php @@ -7,7 +7,7 @@ if (!array_key_exists('ReturnTo', $_REQUEST)) { throw new SimpleSAML_Error_BadRequest('Missing ReturnTo parameter.'); } -SimpleSAML_Utilities::requireAdmin(); +SimpleSAML_Utils_Auth::requireAdmin(); SimpleSAML_Utilities::redirectUntrustedURL($_REQUEST['ReturnTo']); diff --git a/modules/core/www/show_metadata.php b/modules/core/www/show_metadata.php index b2e9d96fb..9edfa4e31 100644 --- a/modules/core/www/show_metadata.php +++ b/modules/core/www/show_metadata.php @@ -6,7 +6,7 @@ $config = SimpleSAML_Configuration::getInstance(); $session = SimpleSAML_Session::getSessionFromRequest(); -SimpleSAML_Utilities::requireAdmin(); +SimpleSAML_Utils_Auth::requireAdmin(); if (!array_key_exists('entityid', $_REQUEST)) diff --git a/modules/cron/www/croninfo.php b/modules/cron/www/croninfo.php index 6be04ebf6..192576772 100644 --- a/modules/cron/www/croninfo.php +++ b/modules/cron/www/croninfo.php @@ -11,7 +11,7 @@ require_once('_include.php'); $config = SimpleSAML_Configuration::getInstance(); $session = SimpleSAML_Session::getSessionFromRequest(); -SimpleSAML_Utilities::requireAdmin(); +SimpleSAML_Utils_Auth::requireAdmin(); $cronconfig = SimpleSAML_Configuration::getConfig('module_cron.php'); diff --git a/modules/logpeek/www/index.php b/modules/logpeek/www/index.php index 9c763571e..6336e6cb1 100644 --- a/modules/logpeek/www/index.php +++ b/modules/logpeek/www/index.php @@ -21,7 +21,7 @@ function logFilter($objFile, $tag, $cut){ $config = SimpleSAML_Configuration::getInstance(); $session = SimpleSAML_Session::getSessionFromRequest(); -SimpleSAML_Utilities::requireAdmin(); +SimpleSAML_Utils_Auth::requireAdmin(); $logpeekconfig = SimpleSAML_Configuration::getConfig('module_logpeek.php'); $logfile = $logpeekconfig->getValue('logfile', '/var/simplesamlphp.log'); diff --git a/modules/memcacheMonitor/www/memcachestat.php b/modules/memcacheMonitor/www/memcachestat.php index 40a2efa45..76a059027 100644 --- a/modules/memcacheMonitor/www/memcachestat.php +++ b/modules/memcacheMonitor/www/memcachestat.php @@ -75,7 +75,7 @@ function humanreadable($input) { $config = SimpleSAML_Configuration::getInstance(); /* Make sure that the user has admin access rights. */ -SimpleSAML_Utilities::requireAdmin(); +SimpleSAML_Utils_Auth::requireAdmin(); $formats = array( diff --git a/modules/metarefresh/www/fetch.php b/modules/metarefresh/www/fetch.php index a2739b85d..70fc6657c 100644 --- a/modules/metarefresh/www/fetch.php +++ b/modules/metarefresh/www/fetch.php @@ -3,7 +3,7 @@ $config = SimpleSAML_Configuration::getInstance(); $mconfig = SimpleSAML_Configuration::getOptionalConfig('config-metarefresh.php'); -SimpleSAML_Utilities::requireAdmin(); +SimpleSAML_Utils_Auth::requireAdmin(); SimpleSAML_Logger::setCaptureLog(TRUE); diff --git a/modules/saml/www/idp/certs.php b/modules/saml/www/idp/certs.php index 5db029c50..77a5074e4 100644 --- a/modules/saml/www/idp/certs.php +++ b/modules/saml/www/idp/certs.php @@ -9,7 +9,7 @@ if (!$config->getBoolean('enable.saml20-idp', false)) /* Check if valid local session exists.. */ if ($config->getBoolean('admin.protectmetadata', false)) { - SimpleSAML_Utilities::requireAdmin(); + SimpleSAML_Utils_Auth::requireAdmin(); } $idpentityid = $metadata->getMetaDataCurrentEntityID('saml20-idp-hosted'); diff --git a/modules/saml/www/sp/metadata.php b/modules/saml/www/sp/metadata.php index 72d2cdd66..e7267bbef 100644 --- a/modules/saml/www/sp/metadata.php +++ b/modules/saml/www/sp/metadata.php @@ -6,7 +6,7 @@ if (!array_key_exists('PATH_INFO', $_SERVER)) { $config = SimpleSAML_Configuration::getInstance(); if ($config->getBoolean('admin.protectmetadata', false)) { - SimpleSAML_Utilities::requireAdmin(); + SimpleSAML_Utils_Auth::requireAdmin(); } $sourceId = substr($_SERVER['PATH_INFO'], 1); $source = SimpleSAML_Auth_Source::getById($sourceId); diff --git a/modules/statistics/lib/AccessCheck.php b/modules/statistics/lib/AccessCheck.php index e30f883ee..794bc0191 100644 --- a/modules/statistics/lib/AccessCheck.php +++ b/modules/statistics/lib/AccessCheck.php @@ -36,7 +36,7 @@ class sspmod_statistics_AccessCheck { if (!isset($authsource)) { // If authsource is not defined, init admin login. - SimpleSAML_Utilities::requireAdmin(); + SimpleSAML_Utils_Auth::requireAdmin(); } /* We are using an authsource for login. */ diff --git a/www/admin/hostnames.php b/www/admin/hostnames.php index f2a65928c..cc6a4511f 100644 --- a/www/admin/hostnames.php +++ b/www/admin/hostnames.php @@ -7,7 +7,7 @@ $config = SimpleSAML_Configuration::getInstance(); $session = SimpleSAML_Session::getSessionFromRequest(); /* Check if valid local session exists.. */ -SimpleSAML_Utilities::requireAdmin(); +SimpleSAML_Utils_Auth::requireAdmin(); $attributes = array(); diff --git a/www/admin/metadata-converter.php b/www/admin/metadata-converter.php index dc447e3a6..5b2e2acca 100644 --- a/www/admin/metadata-converter.php +++ b/www/admin/metadata-converter.php @@ -3,7 +3,7 @@ require_once('../_include.php'); /* Make sure that the user has admin access rights. */ -SimpleSAML_Utilities::requireAdmin(); +SimpleSAML_Utils_Auth::requireAdmin(); $config = SimpleSAML_Configuration::getInstance(); diff --git a/www/admin/phpinfo.php b/www/admin/phpinfo.php index 64d2dbffa..8688389bc 100644 --- a/www/admin/phpinfo.php +++ b/www/admin/phpinfo.php @@ -3,6 +3,6 @@ require_once('../_include.php'); /* Make sure that the user has admin access rights. */ -SimpleSAML_Utilities::requireAdmin(); +SimpleSAML_Utils_Auth::requireAdmin(); phpinfo(); diff --git a/www/saml2/idp/metadata.php b/www/saml2/idp/metadata.php index 2707adae6..d7411d959 100644 --- a/www/saml2/idp/metadata.php +++ b/www/saml2/idp/metadata.php @@ -11,7 +11,7 @@ if (!$config->getBoolean('enable.saml20-idp', false)) /* Check if valid local session exists.. */ if ($config->getBoolean('admin.protectmetadata', false)) { - SimpleSAML_Utilities::requireAdmin(); + SimpleSAML_Utils_Auth::requireAdmin(); } diff --git a/www/shib13/idp/metadata.php b/www/shib13/idp/metadata.php index ee35c6f6f..8b2c94bac 100644 --- a/www/shib13/idp/metadata.php +++ b/www/shib13/idp/metadata.php @@ -11,7 +11,7 @@ if (!$config->getBoolean('enable.shib13-idp', false)) /* Check if valid local session exists.. */ if ($config->getBoolean('admin.protectmetadata', false)) { - SimpleSAML_Utilities::requireAdmin(); + SimpleSAML_Utils_Auth::requireAdmin(); } -- GitLab