/** * Add data parsed from extensions to metadata. * * @param array &$metadata The metadata that should be updated. * @param array $roleDescriptor The parsed role descriptor. */ private function addExtensions(array &$metadata, array $roleDescriptor) { assert('array_key_exists("scope", $roleDescriptor)'); assert('array_key_exists("tags", $roleDescriptor)'); $scopes = array_merge($this->scopes, array_diff($roleDescriptor['scope'], $this->scopes)); if (!empty($scopes)) { $metadata['scope'] = $scopes; } $tags = array_merge($this->tags, array_diff($roleDescriptor['tags'], $this->tags)); if (!empty($tags)) { $metadata['tags'] = $tags; } if (!empty($this->entityAttributes)) { $metadata['EntityAttributes'] = $this->entityAttributes; // check for entity categories if (SimpleSAML\Utils\Config\Metadata::isHiddenFromDiscovery($metadata)) { $metadata['hide.from.discovery'] = true; } } if (!empty($roleDescriptor['UIInfo'])) { $metadata['UIInfo'] = $roleDescriptor['UIInfo']; } if (!empty($roleDescriptor['DiscoHints'])) { $metadata['DiscoHints'] = $roleDescriptor['DiscoHints']; } }
$metaArray['NameIDFormat'] = $idpmeta->getString('NameIDFormat', 'urn:oasis:names:tc:SAML:2.0:nameid-format:transient'); if ($idpmeta->hasValue('OrganizationName')) { $metaArray['OrganizationName'] = $idpmeta->getLocalizedString('OrganizationName'); $metaArray['OrganizationDisplayName'] = $idpmeta->getLocalizedString('OrganizationDisplayName', $metaArray['OrganizationName']); if (!$idpmeta->hasValue('OrganizationURL')) { throw new SimpleSAML_Error_Exception('If OrganizationName is set, OrganizationURL must also be set.'); } $metaArray['OrganizationURL'] = $idpmeta->getLocalizedString('OrganizationURL'); } if ($idpmeta->hasValue('scope')) { $metaArray['scope'] = $idpmeta->getArray('scope'); } if ($idpmeta->hasValue('EntityAttributes')) { $metaArray['EntityAttributes'] = $idpmeta->getArray('EntityAttributes'); // check for entity categories if (SimpleSAML\Utils\Config\Metadata::isHiddenFromDiscovery($metaArray)) { $metaArray['hide.from.discovery'] = true; } } if ($idpmeta->hasValue('UIInfo')) { $metaArray['UIInfo'] = $idpmeta->getArray('UIInfo'); } if ($idpmeta->hasValue('DiscoHints')) { $metaArray['DiscoHints'] = $idpmeta->getArray('DiscoHints'); } if ($idpmeta->hasValue('RegistrationInfo')) { $metaArray['RegistrationInfo'] = $idpmeta->getArray('RegistrationInfo'); } if ($idpmeta->hasValue('validate.authnrequest')) { $metaArray['sign.authnrequest'] = $idpmeta->getBoolean('validate.authnrequest'); }