Пример #1
0
$aggregators = $gConfig->getConfigItem('aggregators');
// If aggregator ID is not provided, show the list of available aggregates
if (!array_key_exists('id', $_GET)) {
    $t = new SimpleSAML_XHTML_Template($config, 'aggregator:list.php');
    $t->data['sources'] = $aggregators->getOptions();
    $t->show();
    exit;
}
$id = $_GET['id'];
if (!in_array($id, $aggregators->getOptions())) {
    throw new SimpleSAML_Error_NotFound('No aggregator with id ' . var_export($id, TRUE) . ' found.');
}
$aConfig = $aggregators->getConfigItem($id);
$aggregator = new sspmod_aggregator_Aggregator($gConfig, $aConfig, $id);
if (isset($_REQUEST['set'])) {
    $aggregator->limitSets($_REQUEST['set']);
}
if (isset($_REQUEST['exclude'])) {
    $aggregator->exclude($_REQUEST['exclude']);
}
$xml = $aggregator->getMetadataDocument();
$mimetype = 'application/samlmetadata+xml';
$allowedmimetypes = array('text/plain', 'application/samlmetadata-xml', 'application/xml');
if (isset($_GET['mimetype']) && in_array($_GET['mimetype'], $allowedmimetypes)) {
    $mimetype = $_GET['mimetype'];
}
if ($mimetype === 'text/plain') {
    SimpleSAML_Utilities::formatDOMElement($xml);
}
$metadata = '<?xml version="1.0"?>' . "\n" . $xml->ownerDocument->saveXML($xml);
header('Content-Type: ' . $mimetype);