public void Saml2ArtifactBinding_Unbind_FromGet() { var issuer = new EntityId("https://idp.example.com"); var artifact = Uri.EscapeDataString( Convert.ToBase64String( Saml2ArtifactBinding.CreateArtifact(issuer, 0x1234))); var relayState = "relayState"; var r = new HttpRequestData( "GET", new Uri($"http://example.com/path/acs?SAMLart={artifact}&RelayState={relayState}"), null, null, new StoredRequestState(issuer, null, null, null)); StubServer.LastArtifactResolutionSoapActionHeader = null; var result = Saml2Binding.Get(Saml2BindingType.Artifact).Unbind(r, StubFactory.CreateOptions()); var xmlDocument = new XmlDocument() { PreserveWhitespace = true }; xmlDocument.LoadXml("<message> <child-node /> </message>"); var expected = new UnbindResult(xmlDocument.DocumentElement, relayState, TrustLevel.None); result.ShouldBeEquivalentTo(expected); StubServer.LastArtifactResolutionSoapActionHeader.Should().Be( "http://www.oasis-open.org/committees/security"); StubServer.LastArtifactResolutionWasSigned.Should().BeFalse(); }
public void Saml2ArtifactBinding_Unbind_FromPostWithoutRelayState() { var issuer = new EntityId("https://idp.example.com"); var artifact = Convert.ToBase64String( Saml2ArtifactBinding.CreateArtifact(issuer, 0x1234)); var r = new HttpRequestData( "POST", new Uri("http://example.com"), "/ModulePath", new KeyValuePair <string, string[]>[] { new KeyValuePair <string, string[]>("SAMLart", new[] { artifact }), }, null, null); StubServer.LastArtifactResolutionSoapActionHeader = null; var result = Saml2Binding.Get(Saml2BindingType.Artifact).Unbind(r, StubFactory.CreateOptions()); var xmlDocument = new XmlDocument() { PreserveWhitespace = true }; xmlDocument.LoadXml("<message> <child-node /> </message>"); var expected = new UnbindResult(xmlDocument.DocumentElement, null, TrustLevel.None); result.ShouldBeEquivalentTo(expected); StubServer.LastArtifactResolutionSoapActionHeader.Should().Be( "http://www.oasis-open.org/committees/security"); }
public void Saml2ArtifactBinding_Unbind_FromPost() { var issuer = new EntityId("https://idp.example.com"); var artifact = Convert.ToBase64String( Saml2ArtifactBinding.CreateArtifact(issuer, 0x1234)); var relayState = MethodBase.GetCurrentMethod().Name; var r = new HttpRequestData( "POST", new Uri("http://example.com"), "/ModulePath", new KeyValuePair <string, IEnumerable <string> >[] { new KeyValuePair <string, IEnumerable <string> >("SAMLart", new[] { artifact }), new KeyValuePair <string, IEnumerable <string> >("RelayState", new[] { relayState }) }, new StoredRequestState(issuer, null, null, null)); StubServer.LastArtifactResolutionSoapActionHeader = null; var result = Saml2Binding.Get(Saml2BindingType.Artifact).Unbind(r, StubFactory.CreateOptions()); var xmlDocument = XmlHelpers.XmlDocumentFromString( "<message> <child-node /> </message>"); var expected = new UnbindResult(xmlDocument.DocumentElement, relayState, TrustLevel.None); result.ShouldBeEquivalentTo(expected); StubServer.LastArtifactResolutionSoapActionHeader.Should().Be( "http://www.oasis-open.org/committees/security"); }
public void Saml2ArtifactBinding_Unbind_FromGet_ArtifactIsntHashOfEntityId() { var issuer = new EntityId("https://idp.example.com"); var artifact = Uri.EscapeDataString( Convert.ToBase64String( Saml2ArtifactBinding.CreateArtifact( new EntityId("https://this.entityid.is.invalid"), 0x1234))); var relayState = "relayState"; var r = new HttpRequestData( "GET", new Uri($"http://example.com/path/acs?SAMLart={artifact}&RelayState={relayState}"), null, null, new StoredRequestState(issuer, null, null, null)); var result = Saml2Binding.Get(Saml2BindingType.Artifact).Unbind(r, StubFactory.CreateOptions()); var xmlDocument = XmlHelpers.XmlDocumentFromString( "<message> <child-node /> </message>"); var expected = new UnbindResult(xmlDocument.DocumentElement, relayState, TrustLevel.None); result.Should().BeEquivalentTo(expected); StubServer.LastArtifactResolutionWasSigned.Should().BeFalse(); }
public void Saml2ArtifactBinding_Unbind_FromGetWithoutRelayState() { var issuer = new EntityId("https://idp.example.com"); var artifact = Uri.EscapeDataString( Convert.ToBase64String( Saml2ArtifactBinding.CreateArtifact(issuer, 0x1234))); var r = new HttpRequestData( "GET", new Uri($"http://example.com/path/acs?SAMLart={artifact}")); StubServer.LastArtifactResolutionSoapActionHeader = null; var result = Saml2Binding.Get(Saml2BindingType.Artifact).Unbind(r, StubFactory.CreateOptions()); var xmlDocument = XmlHelpers.XmlDocumentFromString( "<message> <child-node /> </message>"); var expected = new UnbindResult(xmlDocument.DocumentElement, null, TrustLevel.None); result.Should().BeEquivalentTo(expected); }