public function test_logout_request_with_xsd() { $logoutRequest = new LogoutRequest(); $logoutRequest->setNameID(new NameID('*****@*****.**', SamlConstants::NAME_ID_FORMAT_EMAIL))->setSessionIndex(Helper::generateID())->setNotOnOrAfter(new \DateTime('+2 minute'))->setID(Helper::generateID())->setIssueInstant(new \DateTime())->setDestination('https://destination.com')->setIssuer(new Issuer('https://issuer.com')); $this->sign($logoutRequest); $this->validateProtocol($logoutRequest); }
public function test_sets_name_id_to_outbound_logout_request() { $context = new ProfileContext(Profiles::SSO_IDP_RECEIVE_AUTHN_REQUEST, ProfileContext::ROLE_IDP); $context->getOutboundContext()->setMessage($logoutRequest = new LogoutRequest()); $context->getLogoutContext()->setSsoSessionState((new SsoSessionState())->setNameId($nameId = 'name.id')->setNameIdFormat($nameIdFormat = 'name.id.format')); $action = new SetNameIdAction($this->getLoggerMock()); $action->execute($context); $this->assertNotNull($logoutRequest->getNameID()); $this->assertEquals($nameId, $logoutRequest->getNameID()->getValue()); $this->assertEquals($nameIdFormat, $logoutRequest->getNameID()->getFormat()); }
public function test_sets_not_on_or_after_to_outbound_logout_request() { $timeProviderMock = $this->getTimeProviderMock(); $action = new SetNotOnOrAfterAction($this->getLoggerMock(), $timeProviderMock, $skew = 100); $context = new ProfileContext(Profiles::SSO_IDP_RECEIVE_AUTHN_REQUEST, ProfileContext::ROLE_IDP); $context->getOutboundContext()->setMessage($logoutRequest = new LogoutRequest()); $timeProviderMock->expects($this->once())->method('getTimestamp')->willReturn($baseTimestamp = 1445953125); $action->execute($context); $expectedTimestamp = $baseTimestamp + $skew; $this->assertEquals($expectedTimestamp, $logoutRequest->getNotOnOrAfterTimestamp()); }
public function test__serialize() { $context = new SerializationContext(); $request = new LogoutRequest(); $request->setID('request-id')->setIssueInstant(new \DateTime('2013-12-08T17:08:35Z'))->setDestination('http://idp.com/saml/logout')->setNotOnOrAfter(new \DateTime('2013-12-08T17:10:00Z'))->setIssuer((new Issuer())->setValue('the-issuer'))->setNameID((new NameID())->setValue('name-id')->setFormat(SamlConstants::NAME_ID_FORMAT_PERSISTENT))->setSessionIndex('123123123'); $request->serialize($context->getDocument(), $context); $context->getDocument()->formatOutput = true; $xml = $context->getDocument()->saveXML(); $expectedXml = <<<EOT <?xml version="1.0"?> <LogoutRequest xmlns="urn:oasis:names:tc:SAML:2.0:protocol" ID="request-id" Version="2.0" IssueInstant="2013-12-08T17:08:35Z" Destination="http://idp.com/saml/logout" NotOnOrAfter="2013-12-08T17:10:00Z"> <saml:Issuer xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion">the-issuer</saml:Issuer> <saml:NameID xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion" Format="urn:oasis:names:tc:SAML:2.0:nameid-format:persistent">name-id</saml:NameID> <SessionIndex>123123123</SessionIndex> </LogoutRequest> EOT; $xml = trim(str_replace("\r", '', $xml)); $expectedXml = trim(str_replace("\r", '', $expectedXml)); $this->assertEquals($expectedXml, $xml); }
public function test_logout_request() { $logoutRequest = new LogoutRequest(); $logoutRequest->setNameID(new NameID('*****@*****.**', SamlConstants::NAME_ID_FORMAT_EMAIL)); $this->verify($logoutRequest); }
public function test__deserialize_logout_request01() { $context = new DeserializationContext(); $context->getDocument()->load(__DIR__ . '/../../../../../../resources/sample/Request/logoutrequest01.xml'); $request = new LogoutRequest(); $request->deserialize($context->getDocument(), $context); $this->assertEquals('_6210989d671b429f1c82467626ffd0be990ded60bd', $request->getID()); $this->assertEquals('2.0', $request->getVersion()); $this->assertEquals('2013-11-07T16:07:25Z', $request->getIssueInstantString()); $this->assertEquals('https://b1.bead.loc/adfs/ls/', $request->getDestination()); $this->assertEquals('2013-11-07T16:07:25Z', $request->getNotOnOrAfterString()); $this->assertNotNull($request->getIssuer()); $this->assertEquals('https://mt.evo.team/simplesaml/module.php/saml/sp/metadata.php/default-sp', $request->getIssuer()->getValue()); $this->assertNotNull($request->getNameID()); $this->assertEquals('user', $request->getNameID()->getValue()); $this->assertEquals(SamlConstants::NAME_ID_FORMAT_TRANSIENT, $request->getNameID()->getFormat()); $this->assertEquals('_677952a2-7fb3-4e7a-b439-326366e677db', $request->getSessionIndex()); }