diff --git a/lib/SimpleSAML/Utilities.php b/lib/SimpleSAML/Utilities.php index 3a8018aef05f10436bae5cb3e62d52f9e06b0f4b..98684ebf181a816117b49eabcef5721023e78c44 100644 --- a/lib/SimpleSAML/Utilities.php +++ b/lib/SimpleSAML/Utilities.php @@ -1107,39 +1107,11 @@ class SimpleSAML_Utilities { * @return A non-reversible unique identifier for the user. */ public static function generateUserIdentifier($idpEntityId, $spEntityId, array &$state, $idpset = 'saml20-idp-hosted', $spset = 'saml20-sp-remote') { - - $metadataHandler = SimpleSAML_Metadata_MetaDataStorageHandler::getMetadataHandler(); - $idpMetadata = $metadataHandler->getMetaData($idpEntityId, $idpset); - $spMetadata = $metadataHandler->getMetaData($spEntityId, $spset); - - if (isset($state['UserID'])) { - $attributeValue = $state['UserID']; - } else { - if(array_key_exists('userid.attribute', $spMetadata)) { - $attributeName = $spMetadata['userid.attribute']; - } elseif(array_key_exists('userid.attribute', $idpMetadata)) { - $attributeName = $idpMetadata['userid.attribute']; - } else { - $attributeName = 'eduPersonPrincipalName'; - } - if(!array_key_exists($attributeName, $attributes)) { - throw new Exception('Missing attribute "' . $attributeName . '" for user. Cannot' . - ' generate user id.'); - } - - $attributeValue = $attributes[$attributeName]; - if(count($attributeValue) !== 1) { - throw new Exception('Attribute "' . $attributeName . '" for user did not contain exactly' . - ' one value. Cannot generate user id.'); - } - - $attributeValue = $attributeValue[0]; - if(empty($attributeValue)) { - throw new Exception('Attribute "' . $attributeName . '" for user was empty. Cannot' . - ' generate user id.'); - } + if (!isset($state['UserID'])) { + throw new SimpleSAML_Error_Exception('Missing UserID. Please set the userid.attribute metadata option.'); } + $attributeValue = $state['UserID']; $secretSalt = self::getSecretSalt();