diff --git a/lib/SimpleSAML/IdP.php b/lib/SimpleSAML/IdP.php index 18f78b75c0d4e37f23e418f9ac54df55e29ffa67..a16ef17622d1faaea190ea50fd0e7b754a7c01bd 100644 --- a/lib/SimpleSAML/IdP.php +++ b/lib/SimpleSAML/IdP.php @@ -225,6 +225,49 @@ class SimpleSAML_IdP { } + /** + * Retrieve the authority for the given IdP metadata. + * + * This function provides backwards-compatibility with + * previous versions of simpleSAMLphp. + * + * @param array $idpmetadata The IdP metadata. + * @return string The authority that should be used to validate the session. + */ + private function getAuthority() { + + if ($this->config->hasValue('authority')) { + return $this->config->getString('authority'); + } + + $candidates = array( + 'auth/login-admin.php' => 'login-admin', + 'auth/login-auto.php' => 'login-auto', + 'auth/login-cas-ldap.php' => 'login-cas-ldap', + 'auth/login-feide.php' => 'login-feide', + 'auth/login-ldapmulti.php' => 'login-ldapmulti', + 'auth/login-radius.php' => 'login-radius', + 'auth/login-tlsclient.php' => 'tlsclient', + 'auth/login-wayf-ldap.php' => 'login-wayf-ldap', + 'auth/login.php' => 'login', + ); + + $auth = $this->config->getString('auth'); + + if (isset($candidates[$auth])) { + return $candidates[$auth]; + } + if (strpos($auth, '/') !== FALSE) { + /* Probably a file. */ + throw new SimpleSAML_Error_Exception('You need to set \'authority\' in the metadata for ' . + var_export($this->id, TRUE) . '.'); + } else { + throw new SimpleSAML_Error_Exception('Unknown authsource ' . + var_export($auth, TRUE) . '.'); + } + } + + /** * Is the current user authenticated? * @@ -246,7 +289,7 @@ class SimpleSAML_IdP { } /* It wasn't an authentication source. */ - $authority = SimpleSAML_Utilities::getAuthority($this->config->toArray()); + $authority = $this->getAuthority(); return $session->isValid($authority); } diff --git a/lib/SimpleSAML/Utilities.php b/lib/SimpleSAML/Utilities.php index 3657a5ffaf66c8cbf568faca764aa557bee2e2c8..98a2a103e9e03ab07bddde02c291cf910ad3cda1 100644 --- a/lib/SimpleSAML/Utilities.php +++ b/lib/SimpleSAML/Utilities.php @@ -2123,46 +2123,6 @@ class SimpleSAML_Utilities { } - /** - * Retrieve the authority for the given IdP metadata. - * - * This function provides backwards-compatibility with - * previous versions of simpleSAMLphp. - * - * @param array $idpmetadata The IdP metadata. - * @return string The authority that should be used to validate the session. - */ - public static function getAuthority(array $idpmetadata) { - - if (isset($idpmetadata['authority'])) { - return $idpmetadata['authority']; - } - - $candidates = array( - 'auth/login-admin.php' => 'login-admin', - 'auth/login-auto.php' => 'login-auto', - 'auth/login-cas-ldap.php' => 'login-cas-ldap', - 'auth/login-feide.php' => 'login-feide', - 'auth/login-ldapmulti.php' => 'login-ldapmulti', - 'auth/login-radius.php' => 'login-radius', - 'auth/login-tlsclient.php' => 'tlsclient', - 'auth/login-wayf-ldap.php' => 'login-wayf-ldap', - 'auth/login.php' => 'login', - ); - if (isset($candidates[$idpmetadata['auth']])) { - return $candidates[$idpmetadata['auth']]; - } - if (strpos($idpmetadata['auth'], '/') !== FALSE) { - /* Probably a file. */ - throw new SimpleSAML_Error_Exception('You need to set \'authority\' in the metadata for ' . - var_export($idpmetadata['entityid'], TRUE) . '.'); - } else { - throw new SimpleSAML_Error_Exception('Unknown authsource ' . - var_export($idpmetadata['auth'], TRUE) . '.'); - } - } - - /** * Check for session cookie, and show missing-cookie page if it is missing. *