@@ -21,10 +21,11 @@ class OneLogin_Saml2_Metadata
21
21
* @param array $contacts Contacts info
22
22
* @param array $organization Organization ingo
23
23
* @param array $attributes
24
+ * @param bool $ignoreValidUntil exclude the validUntil tag from metadata
24
25
*
25
26
* @return string SAML Metadata XML
26
27
*/
27
- public static function builder ($ sp , $ authnsign = false , $ wsign = false , $ validUntil = null , $ cacheDuration = null , $ contacts = array (), $ organization = array (), $ attributes = array ())
28
+ public static function builder ($ sp , $ authnsign = false , $ wsign = false , $ validUntil = null , $ cacheDuration = null , $ contacts = array (), $ organization = array (), $ attributes = array (), $ ignoreValidUntil = false )
28
29
{
29
30
30
31
if (!isset ($ validUntil )) {
@@ -144,27 +145,37 @@ public static function builder($sp, $authnsign = false, $wsign = false, $validUn
144
145
145
146
$ requestedAttributeStr = implode (PHP_EOL , $ requestedAttributeData );
146
147
$ strAttributeConsumingService = <<<METADATA_TEMPLATE
147
- <md:AttributeConsumingService index="1">
148
+
149
+ <md:AttributeConsumingService index="1">
148
150
<md:ServiceName xml:lang="en"> {$ sp ['attributeConsumingService ' ]['serviceName ' ]}</md:ServiceName>
149
151
{$ attrCsDesc }{$ requestedAttributeStr }
150
152
</md:AttributeConsumingService>
151
153
METADATA_TEMPLATE ;
152
154
}
153
155
156
+ if ($ ignoreValidUntil ) {
157
+ $ timeStr = <<<TIME_TEMPLATE
158
+ cacheDuration="PT {$ cacheDuration }S";
159
+ TIME_TEMPLATE ;
160
+ } else {
161
+ $ timeStr = <<<TIME_TEMPLATE
162
+ validUntil=" {$ validUntilTime }"
163
+ cacheDuration="PT {$ cacheDuration }S"
164
+ TIME_TEMPLATE ;
165
+ }
166
+
154
167
$ spEntityId = htmlspecialchars ($ sp ['entityId ' ], ENT_QUOTES );
155
168
$ acsUrl = htmlspecialchars ($ sp ['assertionConsumerService ' ]['url ' ], ENT_QUOTES );
156
169
$ metadata = <<<METADATA_TEMPLATE
157
170
<?xml version="1.0"?>
158
171
<md:EntityDescriptor xmlns:md="urn:oasis:names:tc:SAML:2.0:metadata"
159
- validUntil=" {$ validUntilTime }"
160
- cacheDuration="PT {$ cacheDuration }S"
172
+ {$ timeStr }
161
173
entityID=" {$ spEntityId }">
162
174
<md:SPSSODescriptor AuthnRequestsSigned=" {$ strAuthnsign }" WantAssertionsSigned=" {$ strWsign }" protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol">
163
175
{$ sls } <md:NameIDFormat> {$ sp ['NameIDFormat ' ]}</md:NameIDFormat>
164
176
<md:AssertionConsumerService Binding=" {$ sp ['assertionConsumerService ' ]['binding ' ]}"
165
177
Location=" {$ acsUrl }"
166
- index="1" />
167
- {$ strAttributeConsumingService }
178
+ index="1" /> {$ strAttributeConsumingService }
168
179
</md:SPSSODescriptor> {$ strOrganization }{$ strContacts }
169
180
</md:EntityDescriptor>
170
181
METADATA_TEMPLATE ;
0 commit comments