$maxCache = $janus_config->getValue('maxCache', NULL); $maxDuration = $janus_config->getValue('maxDuration', NULL); $entities = $util->getEntitiesByStateType($export_state, $export_type); $xml = new DOMDocument(); $entitiesDescriptor = $xml->createElementNS('urn:oasis:names:tc:SAML:2.0:metadata', 'md:EntitiesDescriptor'); $entitiesDescriptorName = $janus_config->getString('export.entitiesDescriptorName', 'Federation'); $entitiesDescriptor->setAttribute('Name', $entitiesDescriptorName); if ($maxCache !== NULL) { $entitiesDescriptor->setAttribute('cacheDuration', 'PT' . $maxCache . 'S'); } if ($maxDuration !== NULL) { $entitiesDescriptor->setAttribute('validUntil', SimpleSAML_Utilities::generateTimestamp(time() + $maxDuration)); } $xml->appendChild($entitiesDescriptor); foreach ($entities as $entity) { $entityDescriptor = sspmod_janus_MetaExport::getXMLMetadata($entity['eid'], $entity['revisionid'], array('maxCache' => $maxCache, 'maxDuration' => $maxDuration)); $ssp_metadata = $ssp_metadata . "\n\n" . sspmod_janus_MetaExport::getFlatMetadata($entity['eid'], $entity['revisionid']); if (empty($entityDescriptor)) { $t = new SimpleSAML_XHTML_Template($config, 'janus:error.php', 'janus:error'); $t->data['header'] = 'JANUS'; $t->data['title'] = 'error_required_metadata_missing_header'; $t->data['error'] = 'error_required_metadata_missing_entity'; $t->data['error_data'] = array('%ENTITY%' => $entity['entityid']); $t->data['extra_data'] = implode("\n", sspmod_janus_MetaExport::getError()); $t->show(); exit(0); } $entitiesDescriptor->appendChild($xml->importNode($entityDescriptor, TRUE)); } /* Sign the metadata if enabled. */ if ($janus_config->getBoolean('sign.enable', FALSE)) {