diff --git a/dictionaries/status.definition.json b/dictionaries/status.definition.json index 492f754c58cf53bdebf18b4fe4f42573e9b58394..57030aaab4db1ee8fb8ce483d492548e2b83ed39 100644 --- a/dictionaries/status.definition.json +++ b/dictionaries/status.definition.json @@ -23,6 +23,15 @@ "sessionsize": { "en": "Session size: %SIZE%" }, + "subject_header": { + "en": "SAML Subject" + }, + "subject_notset": { + "en": "not set" + }, + "subject_format": { + "en": "Format" + }, "attributes_header": { "en": "Your attributes" }, diff --git a/modules/core/www/authenticate.php b/modules/core/www/authenticate.php index 50fda636c5a28ed968ea15623d48b3a8c7a95c61..0e23193c1dbe3dd9f3eee6735426f6493355e67d 100644 --- a/modules/core/www/authenticate.php +++ b/modules/core/www/authenticate.php @@ -51,6 +51,8 @@ $t = new SimpleSAML_XHTML_Template($config, 'status.php', 'attributes'); $t->data['header'] = '{status:header_saml20_sp}'; $t->data['attributes'] = $attributes; +// if saml:sp:IdP is set, this is SAML auth so we can pass a NameId +$t->data['nameid'] = !is_null( $as->getAuthData('saml:sp:IdP') ) ? $as->getAuthData('saml:sp:NameID') : FALSE; $t->data['logouturl'] = SimpleSAML_Utilities::selfURLNoQuery() . '?as=' . urlencode($asId) . '&logout'; $t->show(); diff --git a/templates/status.php b/templates/status.php index 2fee75ff9ab898f32ead1a0f179edd4589269a42..edd554639093ec1de0e24d8435c60d711ca988c8 100644 --- a/templates/status.php +++ b/templates/status.php @@ -30,6 +30,20 @@ if(isset($this->data['sessionsize'])) { $attributes = $this->data['attributes']; echo(present_attributes($this, $attributes, '')); +$nameid = $this->data['nameid']; +if ( $nameid !== FALSE ) { + echo "<h2>" .$this->t('{status:subject_header}') . "</h2>"; + if ( !isset($nameid['Value']) ) { + $list = array("NameID" => array($this->t('{status:subject_notset}'))); + echo "<p>NameID: <span class=\"notset\">" . $this->t('{status:subject_notset}') . "</span></p>"; + } else { + $list = array( + "NameId" => array($nameid['Value']), + $this->t('{status:subject_format}') => array($nameid['Format']) ); + } + echo(present_attributes($this, $list, '')); +} + if (isset($this->data['logout'])) { echo('<h2>' . $this->t('{status:logout}') . '</h2>'); echo('<p>' . $this->data['logout'] . '</p>');