From f43b38875b09371c34c8a21bf358335aa97e83dc Mon Sep 17 00:00:00 2001 From: Sixto Martin Date: Mon, 27 May 2024 01:42:33 +0200 Subject: [PATCH] Add parameter to exclude validUntil on SP Metadata XML --- lib/Saml2/Metadata.php | 23 +++++++++++++++++------ tests/src/OneLogin/Saml2/MetadataTest.php | 4 ++++ 2 files changed, 21 insertions(+), 6 deletions(-) diff --git a/lib/Saml2/Metadata.php b/lib/Saml2/Metadata.php index 9343ac44..303184b3 100644 --- a/lib/Saml2/Metadata.php +++ b/lib/Saml2/Metadata.php @@ -21,10 +21,11 @@ class OneLogin_Saml2_Metadata * @param array $contacts Contacts info * @param array $organization Organization ingo * @param array $attributes + * @param bool $ignoreValidUntil exclude the validUntil tag from metadata * * @return string SAML Metadata XML */ - public static function builder($sp, $authnsign = false, $wsign = false, $validUntil = null, $cacheDuration = null, $contacts = array(), $organization = array(), $attributes = array()) + public static function builder($sp, $authnsign = false, $wsign = false, $validUntil = null, $cacheDuration = null, $contacts = array(), $organization = array(), $attributes = array(), $ignoreValidUntil = false) { if (!isset($validUntil)) { @@ -144,27 +145,37 @@ public static function builder($sp, $authnsign = false, $wsign = false, $validUn $requestedAttributeStr = implode(PHP_EOL, $requestedAttributeData); $strAttributeConsumingService = << + + {$sp['attributeConsumingService']['serviceName']} {$attrCsDesc}{$requestedAttributeStr} METADATA_TEMPLATE; } + if ($ignoreValidUntil) { + $timeStr = << {$sls} {$sp['NameIDFormat']} - {$strAttributeConsumingService} + index="1" />{$strAttributeConsumingService} {$strOrganization}{$strContacts} METADATA_TEMPLATE; diff --git a/tests/src/OneLogin/Saml2/MetadataTest.php b/tests/src/OneLogin/Saml2/MetadataTest.php index c6a8e6d1..5ce3e471 100644 --- a/tests/src/OneLogin/Saml2/MetadataTest.php +++ b/tests/src/OneLogin/Saml2/MetadataTest.php @@ -41,6 +41,7 @@ public function testBuilder() $this->assertContains('sp_test', $metadata); $this->assertContains('', $metadata); $this->assertContains('technical_name', $metadata); + $this->assertContains('validUntil', $metadata); $security['authnRequestsSigned'] = true; $security['wantAssertionsSigned'] = true; @@ -55,6 +56,9 @@ public function testBuilder() $this->assertNotContains('assertNotContains(' Location="http://stuff.com/endpoints/endpoints/sls.php"/>', $metadata2); + + $metadata3 = OneLogin_Saml2_Metadata::builder($spData, $security['authnRequestsSigned'], $security['wantAssertionsSigned'], null, null, $contacts, $organization, array(), true); + $this->assertNotContains('validUntil=', $metadata3); } /**