11<?php 
2-   
2+ 
33/** 
44 * Metadata lib of OneLogin PHP Toolkit 
55 * 
@@ -58,6 +58,7 @@ public static function builder($sp, $authnsign = false, $wsign = false, $validUn
5858        }
5959
6060        $ strOrganization'' ;
61+ 
6162        if  (!empty ($ organization
6263            $ organizationInfoNamesarray ();
6364            $ organizationInfoDisplaynamesarray ();
@@ -96,6 +97,42 @@ public static function builder($sp, $authnsign = false, $wsign = false, $validUn
9697            $ strContacts"\n" .implode ("\n" , $ contactsInfo
9798        }
9899
100+         $ strAttributeConsumingService'' ;
101+         if  (isset ($ sp'attributeConsumingService ' ])) {
102+             $ attrCsDesc'' ;
103+             if  (isset ($ sp'attributeConsumingService ' ]['serviceDescription ' ])) {
104+                 $ attrCsDescsprintf (
105+                     '            <md:ServiceDescription xml:lang="en">%s</md:ServiceDescription> '  . PHP_EOL ,
106+                     $ sp'attributeConsumingService ' ]['serviceDescription ' ]
107+                 );
108+             }
109+             if  (!isset ($ sp'attributeConsumingService ' ]['serviceName ' ])) {
110+                 $ sp'attributeConsumingService ' ]['serviceName ' ] = 'Service ' ;
111+             }
112+             $ requestedAttributeDataarray ();
113+             foreach  ($ sp'attributeConsumingService ' ]['requestedAttributes ' ] as  $ attribute
114+                 $ requestedAttributeStrsprintf ('            <md:RequestedAttribute Name="%s" ' , $ attribute'name ' ]);
115+                 if  (isset ($ attribute'nameFormat ' ])) {
116+                     $ requestedAttributeStrsprintf (' NameFormat="%s" ' , $ attribute'nameFormat ' ]);
117+                 }
118+                 if  (isset ($ attribute'friendlyName ' ])) {
119+                     $ requestedAttributeStrsprintf (' FriendlyName="%s" ' , $ attribute'friendlyName ' ]);
120+                 }
121+                 if  (isset ($ attribute'isRequired ' ])) {
122+                     $ requestedAttributeStrsprintf (' isRequired="%s" ' , $ attribute'isRequired ' ] === true  ? 'true '  : 'false ' );
123+                 }
124+                 $ requestedAttributeData$ requestedAttributeStr'/> ' ;
125+             }
126+ 
127+             $ requestedAttributeStrimplode (PHP_EOL , $ requestedAttributeData
128+             $ strAttributeConsumingService<<<METADATA_TEMPLATE 
129+ <md:AttributeConsumingService index="1"> 
130+             <md:ServiceName xml:lang="en"> {$ sp'attributeConsumingService ' ]['serviceName ' ]}</md:ServiceName> 
131+ {$ attrCsDesc$ requestedAttributeStr 
132+         </md:AttributeConsumingService> 
133+ METADATA_TEMPLATE ;
134+         }
135+ 
99136        $ metadata<<<METADATA_TEMPLATE 
100137<?xml version="1.0"?> 
101138<md:EntityDescriptor xmlns:md="urn:oasis:names:tc:SAML:2.0:metadata" 
@@ -107,6 +144,7 @@ public static function builder($sp, $authnsign = false, $wsign = false, $validUn
107144        <md:AssertionConsumerService Binding=" {$ sp'assertionConsumerService ' ]['binding ' ]}" 
108145                                     Location=" {$ sp'assertionConsumerService ' ]['url ' ]}" 
109146                                     index="1" /> 
147+          {$ strAttributeConsumingService
110148    </md:SPSSODescriptor> {$ strOrganization$ strContacts
111149</md:EntityDescriptor> 
112150METADATA_TEMPLATE ;
@@ -159,7 +197,7 @@ public static function addX509KeyDescriptors($metadata, $cert, $wantsEncrypted =
159197
160198        $ keyInfo$ xmlcreateElementNS (OneLogin_Saml2_Constants::NS_DS , 'ds:KeyInfo ' );
161199        $ keyInfoappendChild ($ keyData
162-          
200+ 
163201        $ keyDescriptor$ xmlcreateElementNS (OneLogin_Saml2_Constants::NS_MD , "md:KeyDescriptor " );
164202
165203        $ SPSSODescriptor$ xmlgetElementsByTagName ('SPSSODescriptor ' )->item (0 );
0 commit comments