diff --git a/modules/adfs/www/idp/metadata.php b/modules/adfs/www/idp/metadata.php index aaec9361c213de440ccbc8be7db6616007b3cb08..bb77b56f6f917861787d61a23a37f347b019ebe3 100644 --- a/modules/adfs/www/idp/metadata.php +++ b/modules/adfs/www/idp/metadata.php @@ -148,6 +148,13 @@ try { $t->data['clipboard.js'] = true; $t->data['available_certs'] = $availableCerts; + $certdata = array(); + foreach(array_keys($availableCerts) as $availableCert) { + $certdata[$availableCert]['name'] = $availableCert; + $certdata[$availableCert]['url'] = SimpleSAML\Module::getModuleURL('saml/idp/certs.php') . '/' . $availableCert; + $certdata[$availableCert]['comment'] = ( $availableCerts[$availableCert]['certFingerprint'][0] === 'afe71c28ef740bc87425be13a2263d37971da1f9' ? 'This is the default certificate. Generate a new certificate if this is a production system.' : ''); + } + $t->data['certdata'] = $certdata; $t->data['header'] = 'adfs-idp'; // TODO: Replace with headerString in 2.0 $t->data['headerString'] = $t->noop('metadata_adfs-idp'); $t->data['metaurl'] = \SimpleSAML\Utils\HTTP::getSelfURLNoQuery(); diff --git a/templates/metadata.twig b/templates/metadata.twig new file mode 100644 index 0000000000000000000000000000000000000000..f62aa13a63de424c49fdf92649d063af9f360f4b --- /dev/null +++ b/templates/metadata.twig @@ -0,0 +1,54 @@ +{% set pagetile = 'SimpleSAMLphp Show Metadata'|trans %} +{% extends 'base.twig' %} +{% block content %} + <h2>{{ header }}</h2> + <p>{{ metadata_intro }}</p> + +{% if metaurl is defined %} + <p>{{ 'You can get the metadata xml on a dedicated URL:' | trans }}</p> + <div class="input-group"> + <pre id="metadataurl" class="input-left">{{ metaurl }}</pre> + <button data-clipboard-target="#metadataurl" id="btnurl" class="pure-button right clipboard-btn"> + <span class="fa fa-copy"></span> + </button> + </div> +{% endif %} + + <h2>{{ 'Metadata' | trans }}</h2> + <div class="code-box"> + <div class="code-box-title"> + <p>{{ 'In SAML 2.0 Metadata XML format:' | trans }}</p> + <button data-clipboard-target="#xmlmetadata" id="btnxml" class="pure-button right clipboard-btn"> + <span class="fa fa-copy"></span> + </button> + </div> + <div class="code-box-content"> + <pre id="xmlmetadata">{{ metadata | raw }}</pre> + </div> + </div> + + <div class="code-box"> + <div class="code-box-title"> + <p>{{ 'In SimpleSAMLphp flat file format - use this if you are using a SimpleSAMLphp entity on the other side:' | trans }}</p> + <button data-clipboard-target="#phpmetadata" id="btnphp" class="pure-button right clipboard-btn"> + <span class="fa fa-copy"></span> + </button> + </div> + <div class="code-box-content"> + <pre id="phpmetadata">{{ metadataflat | raw }}</pre> + </div> + </div> + +{% if certdata is defined %} + <h2>{{ 'Certificates' |trans }}</h2> + <p>{{ 'Download the X509 certificates as PEM-encoded files.' |trans }}</p> + + <ul> + {% for cert in certdata %} + <li><a href="{{ cert.url }}">{{ cert.name }}</a> {{ cert.comment }}</li> + {% endfor %} + </ul> + +{% endif %} + +{% endblock content %} diff --git a/www/saml2/idp/metadata.php b/www/saml2/idp/metadata.php index fabe2a2efe4f60816ceb10f4524b114193f931e1..e39645517cc6d3cdfb77256c7256191d6c393101 100644 --- a/www/saml2/idp/metadata.php +++ b/www/saml2/idp/metadata.php @@ -211,6 +211,13 @@ try { $t->data['clipboard.js'] = true; $t->data['available_certs'] = $availableCerts; + $certdata = array(); + foreach(array_keys($availableCerts) as $availableCert) { + $certdata[$availableCert]['name'] = $availableCert; + $certdata[$availableCert]['url'] = SimpleSAML\Module::getModuleURL('saml/idp/certs.php') . '/' . $availableCert; + $certdata[$availableCert]['comment'] = ( $availableCerts[$availableCert]['certFingerprint'][0] === 'afe71c28ef740bc87425be13a2263d37971da1f9' ? 'This is the default certificate. Generate a new certificate if this is a production system.' : ''); + } + $t->data['certdata'] = $certdata; $t->data['header'] = 'saml20-idp'; // TODO: Replace with headerString in 2.0 $t->data['headerString'] = $t->noop('metadata_saml20-idp'); $t->data['metaurl'] = HTTP::getSelfURLNoQuery();