public function testMarshalling() { $indexedEndpointType = new SAML2_XML_md_IndexedEndpointType(); $indexedEndpointType->Binding = 'TestBinding'; $indexedEndpointType->Location = 'TestLocation'; $indexedEndpointType->index = 42; $indexedEndpointType->isDefault = FALSE; $document = SAML2_DOMDocumentFactory::fromString('<root />'); $indexedEndpointTypeElement = $indexedEndpointType->toXML($document->firstChild, 'md:Test'); $indexedEndpointElements = SAML2_Utils::xpQuery($indexedEndpointTypeElement, '/root/saml_metadata:Test'); $this->assertCount(1, $indexedEndpointElements); $indexedEndpointElement = $indexedEndpointElements[0]; $this->assertEquals('TestBinding', $indexedEndpointElement->getAttribute('Binding')); $this->assertEquals('TestLocation', $indexedEndpointElement->getAttribute('Location')); $this->assertEquals('42', $indexedEndpointElement->getAttribute('index')); $this->assertEquals('false', $indexedEndpointElement->getAttribute('isDefault')); $indexedEndpointType->isDefault = TRUE; $document->loadXML('<root />'); $indexedEndpointTypeElement = $indexedEndpointType->toXML($document->firstChild, 'md:Test'); $indexedEndpointTypeElement = SAML2_Utils::xpQuery($indexedEndpointTypeElement, '/root/saml_metadata:Test'); $this->assertCount(1, $indexedEndpointTypeElement); $this->assertEquals('true', $indexedEndpointTypeElement[0]->getAttribute('isDefault')); $indexedEndpointType->isDefault = NULL; $document->loadXML('<root />'); $indexedEndpointTypeElement = $indexedEndpointType->toXML($document->firstChild, 'md:Test'); $indexedEndpointTypeElement = SAML2_Utils::xpQuery($indexedEndpointTypeElement, '/root/saml_metadata:Test'); $this->assertCount(1, $indexedEndpointTypeElement); $this->assertTrue(!$indexedEndpointTypeElement[0]->hasAttribute('isDefault')); }
$store = SimpleSAML_Store::getInstance(); if ($store instanceof SimpleSAML_Store_SQL) { /* We can properly support SOAP logout. */ $slo = new SAML2_XML_md_EndpointType(); $slo->Binding = SAML2_Const::BINDING_SOAP; $slo->Location = SimpleSAML_Module::getModuleURL('saml/sp/saml2-logout.php/' . $sourceId); $sp->SingleLogoutService[] = $slo; } $assertionsconsumerservicesdefault = array('urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST', 'urn:oasis:names:tc:SAML:1.0:profiles:browser-post', 'urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Artifact', 'urn:oasis:names:tc:SAML:1.0:profiles:artifact-01'); if ($spconfig->getBoolean('saml20.hok.assertion', FALSE)) { $assertionsconsumerservicesdefault[] = 'urn:oasis:names:tc:SAML:2.0:profiles:holder-of-key:SSO:browser'; } $assertionsconsumerservices = $spconfig->getArray('acs.Bindings', $assertionsconsumerservicesdefault); $index = 0; foreach ($assertionsconsumerservices as $services) { $acs = new SAML2_XML_md_IndexedEndpointType(); $acs->index = $index; switch ($services) { case 'urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST': $acs->Binding = SAML2_Const::BINDING_HTTP_POST; $acs->Location = SimpleSAML_Module::getModuleURL('saml/sp/saml2-acs.php/' . $sourceId); break; case 'urn:oasis:names:tc:SAML:1.0:profiles:browser-post': $acs->Binding = 'urn:oasis:names:tc:SAML:1.0:profiles:browser-post'; $acs->Location = SimpleSAML_Module::getModuleURL('saml/sp/saml1-acs.php/' . $sourceId); break; case 'urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Artifact': $acs->Binding = 'urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Artifact'; $acs->Location = SimpleSAML_Module::getModuleURL('saml/sp/saml2-acs.php/' . $sourceId); break; case 'urn:oasis:names:tc:SAML:1.0:profiles:artifact-01':