/** * Tests that AuthnContextDeclRef is not mistaken for AuthnContextClassRef. * * This tests against reintroduction of removed behavior. */ public function testNoAuthnContextDeclRefFallback() { $authnContextDeclRef = 'relative/url/to/authcontext.xml'; // Unmarshall an assertion $document = SAML2_DOMDocumentFactory::fromString(<<<XML <saml:Assertion xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion" xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol" ID="_593e33ddf86449ce4d4c22b60ac48e067d98a0b2bf" Version="2.0" IssueInstant="2010-03-05T13:34:28Z" > <saml:Issuer>testIssuer</saml:Issuer> <saml:AuthnStatement AuthnInstant="2010-03-05T13:34:28Z"> <saml:AuthnContext> <saml:AuthnContextDeclRef>{$authnContextDeclRef}</saml:AuthnContextDeclRef> </saml:AuthnContext> </saml:AuthnStatement> </saml:Assertion> XML ); $assertion = new \SAML2_Assertion($document->firstChild); $this->assertEmpty($assertion->getAuthnContextClassRef()); $this->assertEquals($authnContextDeclRef, $assertion->getAuthnContextDeclRef()); }