From f2845326f6a83d8b67d4573b55e8eaba2f1e21d2 Mon Sep 17 00:00:00 2001 From: "Benjamin D. Plessinger" Date: Wed, 30 Sep 2020 00:21:52 -0400 Subject: [PATCH] Pull the configured source IdP metadata directly --- .../SAML/XDSamlAuthentication.php | 45 ++++++++++--------- 1 file changed, 23 insertions(+), 22 deletions(-) diff --git a/classes/Authentication/SAML/XDSamlAuthentication.php b/classes/Authentication/SAML/XDSamlAuthentication.php index f95a290b84..f07750b7a0 100644 --- a/classes/Authentication/SAML/XDSamlAuthentication.php +++ b/classes/Authentication/SAML/XDSamlAuthentication.php @@ -220,30 +220,31 @@ public function getLoginURL($returnTo) */ public function getLoginLink() { - if ($this->isSamlConfigured()) { - $idpAuth = \SimpleSAML_Metadata_MetaDataStorageHandler::getMetadataHandler()->getList(); - $orgDisplay = ""; - $icon = ""; - foreach ($idpAuth as $idp) { - if (!empty($idp['OrganizationDisplayName'])) { - $orgDisplay = $idp['OrganizationDisplayName']; - } - if (!empty($idp['icon'])) { - $icon = $idp['icon']; - } - } - if ($orgDisplay === "") { - $orgDisplay = array( - 'en' => 'Single Sign On' - ); - } - return array( - 'organization' => $orgDisplay, - 'icon' => $icon - ); - } else { + if (!$this->isSamlConfigured()) { return false; } + $idp = \SimpleSAML_Metadata_MetaDataStorageHandler::getMetadataHandler()->getMetadata( + \SimpleSAML_Auth_Source::getById($this->authSourceName)->getMetadata()->toArray()['idp'], + 'saml20-idp-remote' + ); + if (!empty($idp['OrganizationDisplayName'])) { + $orgDisplay = $idp['OrganizationDisplayName']; + } + else { + $orgDisplay = array( + 'en' => 'Single Sign On' + ); + } + if (!empty($idp['icon'])) { + $icon = $idp['icon']; + } + else { + $icon = ""; + } + return array( + 'organization' => $orgDisplay, + 'icon' => $icon + ); } /**