From 173409e884594a59bff702ce34694322322b72ce Mon Sep 17 00:00:00 2001 From: Olav Morken <olav.morken@uninett.no> Date: Fri, 7 May 2010 09:13:40 +0000 Subject: [PATCH] www/*/metadata: Convert to SimpleSAML_Configuration metadata. git-svn-id: https://simplesamlphp.googlecode.com/svn/trunk@2284 44740490-163a-0410-bde0-09ae8108e29a --- www/saml2/idp/metadata.php | 34 ++++++++++---------------- www/saml2/sp/metadata.php | 43 +++++++++++++-------------------- www/shib13/idp/metadata.php | 29 ++++++++-------------- www/shib13/sp/metadata.php | 48 +++++++++++++++---------------------- 4 files changed, 58 insertions(+), 96 deletions(-) diff --git a/www/saml2/idp/metadata.php b/www/saml2/idp/metadata.php index ee2b1f947..29e8fe493 100644 --- a/www/saml2/idp/metadata.php +++ b/www/saml2/idp/metadata.php @@ -17,11 +17,10 @@ if ($config->getBoolean('admin.protectmetadata', false)) { try { - - $idpmeta = isset($_GET['idpentityid']) ? $_GET['idpentityid'] : $metadata->getMetaDataCurrent('saml20-idp-hosted'); $idpentityid = isset($_GET['idpentityid']) ? $_GET['idpentityid'] : $metadata->getMetaDataCurrentEntityID('saml20-idp-hosted'); + $idpmeta = $metadata->getMetaDataConfig($idpentityid, 'saml20-idp-hosted'); - $certInfo = SimpleSAML_Utilities::loadPublicKey($idpmeta, TRUE); + $certInfo = SimpleSAML_Utilities::loadPublicKey($idpmeta->toArray(), TRUE); $certFingerprint = $certInfo['certFingerprint']; if (count($certFingerprint) === 1) { /* Only one valid certificate. */ @@ -36,7 +35,7 @@ try { 'certFingerprint' => $certFingerprint, ); - if (isset($idpmeta['saml20.sendartifact']) && $idpmeta['saml20.sendartifact'] === TRUE) { + if ($idpmeta->getBoolean('saml20.sendartifact', FALSE)) { /* Artifact sending enabled. */ $metaArray['ArtifactResolutionService'][] = array( 'index' => 0, @@ -45,29 +44,20 @@ try { ); } - if (array_key_exists('NameIDFormat', $idpmeta)) { - $metaArray['NameIDFormat'] = $idpmeta['NameIDFormat']; - } else { - $metaArray['NameIDFormat'] = 'urn:oasis:names:tc:SAML:2.0:nameid-format:transient'; - } + $metaArray['NameIDFormat'] = $idpmeta->getString('NameIDFormat', 'urn:oasis:names:tc:SAML:2.0:nameid-format:transient'); - if (!empty($idpmeta['OrganizationName'])) { - $metaArray['OrganizationName'] = $idpmeta['OrganizationName']; - - if (!empty($idpmeta['OrganizationDisplayName'])) { - $metaArray['OrganizationDisplayName'] = $idpmeta['OrganizationDisplayName']; - } else { - $metaArray['OrganizationDisplayName'] = $idpmeta['OrganizationName']; - } + if ($idpmeta->hasValue('OrganizationName')) { + $metaArray['OrganizationName'] = $idpmeta->getLocalizedString('OrganizationName'); + $metaArray['OrganizationDisplayName'] = $idpmeta->getLocalizedString('OrganizationDisplayName', $metaArray['OrganizationName']); - if (empty($idpmeta['OrganizationURL'])) { + if (!$idpmeta->hasValue('OrganizationURL')) { throw new SimpleSAML_Error_Exception('If OrganizationName is set, OrganizationURL must also be set.'); } - $metaArray['OrganizationURL'] = $idpmeta['OrganizationURL']; + $metaArray['OrganizationURL'] = $idpmeta->getLocalizedString('OrganizationURL'); } - if (array_key_exists('scope', $idpmeta)) { - $metaArray['scope'] = $idpmeta['scope']; + if ($idpmeta->hasValue('scope')) { + $metaArray['scope'] = $idpmeta->getArray('scope'); } @@ -84,7 +74,7 @@ try { $metaxml = $metaBuilder->getEntityDescriptorText(); /* Sign the metadata if enabled. */ - $metaxml = SimpleSAML_Metadata_Signer::sign($metaxml, $idpmeta, 'SAML 2 IdP'); + $metaxml = SimpleSAML_Metadata_Signer::sign($metaxml, $idpmeta->toArray(), 'SAML 2 IdP'); if (array_key_exists('output', $_GET) && $_GET['output'] == 'xhtml') { $defaultidp = $config->getString('default-saml20-idp', NULL); diff --git a/www/saml2/sp/metadata.php b/www/saml2/sp/metadata.php index 08034ec38..be9d039ea 100644 --- a/www/saml2/sp/metadata.php +++ b/www/saml2/sp/metadata.php @@ -19,8 +19,8 @@ if ($config->getBoolean('admin.protectmetadata', false)) { try { - $spmeta = isset($_GET['spentityid']) ? $_GET['spentityid'] : $metadata->getMetaDataCurrent(); $spentityid = isset($_GET['spentityid']) ? $_GET['spentityid'] : $metadata->getMetaDataCurrentEntityID(); + $spmeta = $metadata->getMetaDataConfig($spentityid, 'saml20-sp-hosted'); $metaArray = array( 'metadata-set' => 'saml20-sp-remote', @@ -29,42 +29,33 @@ try { 'SingleLogoutService' => $metadata->getGenerated('SingleLogoutService', 'saml20-sp-hosted'), ); - if (array_key_exists('NameIDFormat', $spmeta)) { - $metaArray['NameIDFormat'] = $spmeta['NameIDFormat']; - } else { - $metaArray['NameIDFormat'] = 'urn:oasis:names:tc:SAML:2.0:nameid-format:transient'; - } + $metaArray['NameIDFormat'] = $spmeta->getString('NameIDFormat', 'urn:oasis:names:tc:SAML:2.0:nameid-format:transient'); - if (!empty($spmeta['OrganizationName'])) { - $metaArray['OrganizationName'] = $spmeta['OrganizationName']; - - if (!empty($spmeta['OrganizationDisplayName'])) { - $metaArray['OrganizationDisplayName'] = $spmeta['OrganizationDisplayName']; - } else { - $metaArray['OrganizationDisplayName'] = $spmeta['OrganizationName']; - } + if ($spmeta->hasValue('OrganizationName')) { + $metaArray['OrganizationName'] = $spmeta->getLocalizedString('OrganizationName'); + $metaArray['OrganizationDisplayName'] = $spmeta->getLocalizedString('OrganizationDisplayName', $metaArray['OrganizationName']); - if (empty($spmeta['OrganizationURL'])) { + if (!$spmeta->hasValue('OrganizationURL')) { throw new SimpleSAML_Error_Exception('If OrganizationName is set, OrganizationURL must also be set.'); } - $metaArray['OrganizationURL'] = $spmeta['OrganizationURL']; + $metaArray['OrganizationURL'] = $spmeta->getLocalizedString('OrganizationURL'); } - if (array_key_exists('attributes', $spmeta)) { - $metaArray['attributes'] = $spmeta['attributes']; + if ($spmeta->hasValue('attributes')) { + $metaArray['attributes'] = $spmeta->getArray('attributes'); } - if (array_key_exists('attributes.NameFormat', $spmeta)) { - $metaArray['attributes.NameFormat'] = $spmeta['attributes.NameFormat']; + if ($spmeta->hasValue('attributes.NameFormat')) { + $metaArray['attributes.NameFormat'] = $spmeta->getString('attributes.NameFormat'); } - if (array_key_exists('name', $spmeta)) { - $metaArray['name'] = $spmeta['name']; + if ($spmeta->hasValue('name')) { + $metaArray['name'] = $spmeta->getLocalizedString('name'); } - if (array_key_exists('description', $spmeta)) { - $metaArray['description'] = $spmeta['description']; + if ($spmeta->hasValue('description')) { + $metaArray['description'] = $spmeta->getLocalizedString('description'); } - $certInfo = SimpleSAML_Utilities::loadPublicKey($spmeta); + $certInfo = SimpleSAML_Utilities::loadPublicKey($spmeta->toArray()); if ($certInfo !== NULL && array_key_exists('certData', $certInfo)) { $metaArray['certData'] = $certInfo['certData']; } @@ -81,7 +72,7 @@ try { $metaxml = $metaBuilder->getEntityDescriptorText(); /* Sign the metadata if enabled. */ - $metaxml = SimpleSAML_Metadata_Signer::sign($metaxml, $spmeta, 'SAML 2 SP'); + $metaxml = SimpleSAML_Metadata_Signer::sign($metaxml, $spmeta->toArray(), 'SAML 2 SP'); diff --git a/www/shib13/idp/metadata.php b/www/shib13/idp/metadata.php index 4b37a17e0..f795306b4 100644 --- a/www/shib13/idp/metadata.php +++ b/www/shib13/idp/metadata.php @@ -18,10 +18,10 @@ if ($config->getBoolean('admin.protectmetadata', false)) { try { - $idpmeta = isset($_GET['idpentityid']) ? $_GET['idpentityid'] : $metadata->getMetaDataCurrent('shib13-idp-hosted'); $idpentityid = isset($_GET['idpentityid']) ? $_GET['idpentityid'] : $metadata->getMetaDataCurrentEntityID('shib13-idp-hosted'); - - $certInfo = SimpleSAML_Utilities::loadPublicKey($idpmeta, TRUE); + $idpmeta = $metadata->getMetaDataConfig($idpentityid, 'shib13-idp-hosted'); + + $certInfo = SimpleSAML_Utilities::loadPublicKey($idpmeta->toArray(), TRUE); $certFingerprint = $certInfo['certFingerprint']; if (count($certFingerprint) === 1) { /* Only one valid certificate. */ @@ -35,25 +35,16 @@ try { 'certFingerprint' => $certFingerprint, ); - if (array_key_exists('NameIDFormat', $idpmeta)) { - $metaArray['NameIDFormat'] = $idpmeta['NameIDFormat']; - } else { - $metaArray['NameIDFormat'] = 'urn:mace:shibboleth:1.0:nameIdentifier'; - } - - if (!empty($idpmeta['OrganizationName'])) { - $metaArray['OrganizationName'] = $idpmeta['OrganizationName']; + $metaArray['NameIDFormat'] = $idpmeta->getString('NameIDFormat', 'urn:mace:shibboleth:1.0:nameIdentifier'); - if (!empty($idpmeta['OrganizationDisplayName'])) { - $metaArray['OrganizationDisplayName'] = $idpmeta['OrganizationDisplayName']; - } else { - $metaArray['OrganizationDisplayName'] = $idpmeta['OrganizationName']; - } + if ($idpmeta->hasValue('OrganizationName')) { + $metaArray['OrganizationName'] = $idpmeta->getLocalizedString('OrganizationName'); + $metaArray['OrganizationDisplayName'] = $idpmeta->getLocalizedString('OrganizationDisplayName', $metaArray['OrganizationName']); - if (empty($idpmeta['OrganizationURL'])) { + if (!$idpmeta->hasValue('OrganizationURL')) { throw new SimpleSAML_Error_Exception('If OrganizationName is set, OrganizationURL must also be set.'); } - $metaArray['OrganizationURL'] = $idpmeta['OrganizationURL']; + $metaArray['OrganizationURL'] = $idpmeta->getLocalizedString('OrganizationURL'); } @@ -70,7 +61,7 @@ try { $metaxml = $metaBuilder->getEntityDescriptorText(); /* Sign the metadata if enabled. */ - $metaxml = SimpleSAML_Metadata_Signer::sign($metaxml, $idpmeta, 'Shib 1.3 IdP'); + $metaxml = SimpleSAML_Metadata_Signer::sign($metaxml, $idpmeta->toArray(), 'Shib 1.3 IdP'); if (array_key_exists('output', $_GET) && $_GET['output'] == 'xhtml') { diff --git a/www/shib13/sp/metadata.php b/www/shib13/sp/metadata.php index bc86f9540..a31459203 100644 --- a/www/shib13/sp/metadata.php +++ b/www/shib13/sp/metadata.php @@ -19,9 +19,8 @@ if ($config->getBoolean('admin.protectmetadata', false)) { try { - $spmeta = isset($_GET['spentityid']) ? $_GET['spentityid'] : $metadata->getMetaDataCurrent('shib13-sp-hosted'); $spentityid = isset($_GET['spentityid']) ? $_GET['spentityid'] : $metadata->getMetaDataCurrentEntityID('shib13-sp-hosted'); - + $spmeta = $metadata->getMetaDataConfig($spentityid, 'shib13-sp-hosted'); $metaArray = array( 'metadata-set' => 'shib13-sp-remote', @@ -29,50 +28,41 @@ try { 'AssertionConsumerService' => $metadata->getGenerated('AssertionConsumerService', 'shib13-sp-hosted'), ); - $certInfo = SimpleSAML_Utilities::loadPublicKey($spmeta); + $certInfo = SimpleSAML_Utilities::loadPublicKey($spmeta->toArray()); if ($certInfo !== NULL && array_key_exists('certData', $certInfo)) { $metaArray['certData'] = $certInfo['certData']; } - if (array_key_exists('NameIDFormat', $spmeta)) { - $metaArray['NameIDFormat'] = $spmeta['NameIDFormat']; - } else { - $metaArray['NameIDFormat'] = 'urn:mace:shibboleth:1.0:nameIdentifier'; - } - - if (!empty($spmeta['OrganizationName'])) { - $metaArray['OrganizationName'] = $spmeta['OrganizationName']; + $metaArray['NameIDFormat'] = $spmeta->getString('NameIDFormat', 'urn:mace:shibboleth:1.0:nameIdentifier'); - if (!empty($spmeta['OrganizationDisplayName'])) { - $metaArray['OrganizationDisplayName'] = $spmeta['OrganizationDisplayName']; - } else { - $metaArray['OrganizationDisplayName'] = $spmeta['OrganizationName']; - } + if ($spmeta->hasValue('OrganizationName')) { + $metaArray['OrganizationName'] = $spmeta->getLocalizedString('OrganizationName'); + $metaArray['OrganizationDisplayName'] = $spmeta->getLocalizedString('OrganizationDisplayName', $metaArray['OrganizationName']); - if (empty($spmeta['OrganizationURL'])) { + if (!$spmeta->hasValue('OrganizationURL')) { throw new SimpleSAML_Error_Exception('If OrganizationName is set, OrganizationURL must also be set.'); } - $metaArray['OrganizationURL'] = $spmeta['OrganizationURL']; + $metaArray['OrganizationURL'] = $spmeta->getLocalizedString('OrganizationURL'); } - if (array_key_exists('attributes', $spmeta)) { - $metaArray['attributes'] = $spmeta['attributes']; + if ($spmeta->hasValue('attributes')) { + $metaArray['attributes'] = $spmeta->getArray('attributes'); } - if (array_key_exists('attributes.NameFormat', $spmeta)) { - $metaArray['attributes.NameFormat'] = $spmeta['attributes.NameFormat']; + if ($spmeta->hasValue('attributes.NameFormat')) { + $metaArray['attributes.NameFormat'] = $spmeta->getString('attributes.NameFormat'); } - if (array_key_exists('name', $spmeta)) { - $metaArray['name'] = $spmeta['name']; + if ($spmeta->hasValue('name')) { + $metaArray['name'] = $spmeta->getLocalizedString('name'); } - if (array_key_exists('description', $spmeta)) { - $metaArray['description'] = $spmeta['description']; + if ($spmeta->hasValue('description')) { + $metaArray['description'] = $spmeta->getLocalizedString('description'); } $metaflat = '$metadata[' . var_export($spentityid, TRUE) . '] = ' . var_export($metaArray, TRUE) . ';'; - if (array_key_exists('certificate', $spmeta)) { - $metaArray['certificate'] = $spmeta['certificate']; + if ($spmeta->hasValue('certificate')) { + $metaArray['certificate'] = $spmeta->getString('certificate'); } $metaBuilder = new SimpleSAML_Metadata_SAMLBuilder($spentityid); $metaBuilder->addMetadataSP11($metaArray); @@ -84,7 +74,7 @@ try { $metaxml = $metaBuilder->getEntityDescriptorText(); /* Sign the metadata if enabled. */ - $metaxml = SimpleSAML_Metadata_Signer::sign($metaxml, $spmeta, 'Shib 1.3 SP'); + $metaxml = SimpleSAML_Metadata_Signer::sign($metaxml, $spmeta->toArray(), 'Shib 1.3 SP'); if (array_key_exists('output', $_GET) && $_GET['output'] == 'xhtml') { $t = new SimpleSAML_XHTML_Template($config, 'metadata.php', 'admin'); -- GitLab