resolvePath($config['file']); } elseif(array_key_exists('url', $config)) { $src = $config['url']; } else { throw new Exception('Missing either \'file\' or \'url\' in XML metadata source configuration.'); } $SP1x = array(); $IdP1x = array(); $SP20 = array(); $IdP20 = array(); $entities = SimpleSAML_Metadata_SAMLParser::parseDescriptorsFile($src); foreach($entities as $entityId => $entity) { $md = $entity->getMetadata1xSP(); if($md !== NULL) { $SP1x[$entityId] = $md; } $md = $entity->getMetadata1xIdP(); if($md !== NULL) { $IdP1x[$entityId] = $md; } $md = $entity->getMetadata20SP(); if($md !== NULL) { $SP20[$entityId] = $md; } $md = $entity->getMetadata20IdP(); if($md !== NULL) { $IdP20[$entityId] = $md; } } $this->metadata = array( 'shib13-sp-remote' => $SP1x, 'shib13-idp-remote' => $IdP1x, 'saml20-sp-remote' => $SP20, 'saml20-idp-remote' => $IdP20, ); } /** * This function returns an associative array with metadata for all entities in the given set. The * key of the array is the entity id. * * @param $set The set we want to list metadata for. * @return An associative array with all entities in the given set. */ public function getMetadataSet($set) { if(array_key_exists($set, $this->metadata)) { return $this->metadata[$set]; } /* We don't have this metadata set. */ return array(); } } ?>