From e5497693666e9aad30004d8b27e8da0a6f71d443 Mon Sep 17 00:00:00 2001 From: Jaime Perez <jaime.perez@uninett.no> Date: Tue, 30 Sep 2014 18:02:18 +0200 Subject: [PATCH] Migrate hosted IdP metadata to use the new getContact() helper function. Include also the contact information in SSP generated configuration. Honour contact configuration in hosted metadata, the same way as in hosted SP metadata. Solve #101. --- www/saml2/idp/metadata.php | 25 +++++++++++++++++-------- 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/www/saml2/idp/metadata.php b/www/saml2/idp/metadata.php index 0b5f943df..de515e806 100644 --- a/www/saml2/idp/metadata.php +++ b/www/saml2/idp/metadata.php @@ -158,20 +158,29 @@ try { $metaArray['redirect.sign'] = $idpmeta->getBoolean('redirect.validate'); } - $metaflat = '$metadata[' . var_export($idpentityid, TRUE) . '] = ' . var_export($metaArray, TRUE) . ';'; + if ($idpmeta->hasValue('contacts')) { + $contacts = $idpmeta->getArray('contacts'); + foreach ($contacts as $contact) { + $metaArray['contacts'][] = SimpleSAML_Utils_Config_Metadata::getContact($contact); + } + } + + $technicalContactEmail = $config->getString('technicalcontact_email', FALSE); + if ($technicalContactEmail && $technicalContactEmail !== 'na@example.org') { + $techcontact['emailAddress'] = $technicalContactEmail; + $techcontact['name'] = $config->getString('technicalcontact_name', NULL); + $techcontact['contactType'] = 'technical'; + $metaArray['contacts'][] = SimpleSAML_Utils_Config_Metadata::getContact($techcontact); + } $metaBuilder = new SimpleSAML_Metadata_SAMLBuilder($idpentityid); $metaBuilder->addMetadataIdP20($metaArray); $metaBuilder->addOrganizationInfo($metaArray); - $technicalContactEmail = $config->getString('technicalcontact_email', NULL); - if ($technicalContactEmail && $technicalContactEmail !== 'na@example.org') { - $metaBuilder->addContact('technical', array( - 'emailAddress' => $technicalContactEmail, - 'name' => $config->getString('technicalcontact_name', NULL), - )); - } + $metaxml = $metaBuilder->getEntityDescriptorText(); + $metaflat = '$metadata[' . var_export($idpentityid, TRUE) . '] = ' . var_export($metaArray, TRUE) . ';'; + /* Sign the metadata if enabled. */ $metaxml = SimpleSAML_Metadata_Signer::sign($metaxml, $idpmeta->toArray(), 'SAML 2 IdP'); -- GitLab