Skip to content

Commit 9f065d1

Browse files
committed
Simplify XML handling in Saml2SoapEnvelope.
1 parent 61b242d commit 9f065d1

File tree

6 files changed

+17
-72
lines changed

6 files changed

+17
-72
lines changed

src/ITfoxtec.Identity.Saml2.Mvc/ITfoxtec.Identity.Saml2.Mvc.csproj

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,10 +24,10 @@ Support the Danish NemLog-in 2 / OIOSAML 2 and NemLog-in 3 / OIOSAML 3.</Descrip
2424
<PackageTags>SAML SAML 2.0 SAML2.0 SAML2 SAML 2 SAML-P SAMLP SSO Identity Provider (IdP) and Relying Party (RP) Authentication Metadata OIOSAML OIOSAML 2 OIOSAML 3 NemLogin NemLog-in 2 NemLog-in 3 ASP.NET MVC</PackageTags>
2525
<NeutralLanguage>en-US</NeutralLanguage>
2626
<PackageIconUrl>https://itfoxtec.com/favicon.ico</PackageIconUrl>
27-
<AssemblyVersion>4.8.3.8</AssemblyVersion>
28-
<FileVersion>4.8.3.8</FileVersion>
27+
<AssemblyVersion>4.8.4</AssemblyVersion>
28+
<FileVersion>4.8.4</FileVersion>
2929
<Copyright>Copyright © 2023</Copyright>
30-
<Version>4.8.3-beta8</Version>
30+
<Version>4.8.4</Version>
3131
<SignAssembly>true</SignAssembly>
3232
<AssemblyOriginatorKeyFile>ITfoxtec.SAML2.snk</AssemblyOriginatorKeyFile>
3333
<DelaySign>false</DelaySign>

src/ITfoxtec.Identity.Saml2.MvcCore/ITfoxtec.Identity.Saml2.MvcCore.csproj

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,10 +28,10 @@ Support the Danish NemLog-in 2 / OIOSAML 2 and NemLog-in 3 / OIOSAML 3.</Descrip
2828
<PackageTags>SAML SAML 2.0 SAML2.0 SAML2 SAML 2 SAML-P SAMLP SSO Identity Provider (IdP) Relying Party (RP) Authentication Metadata OIOSAML OIOSAML 2 OIOSAML 3 NemLogin NemLog-in 2 NemLog-in 3 ASP.NET MVC Core</PackageTags>
2929
<NeutralLanguage>en-US</NeutralLanguage>
3030
<PackageIconUrl>https://itfoxtec.com/favicon.ico</PackageIconUrl>
31-
<AssemblyVersion>4.8.3.8</AssemblyVersion>
32-
<FileVersion>4.8.3.8</FileVersion>
31+
<AssemblyVersion>4.8.4</AssemblyVersion>
32+
<FileVersion>4.8.4</FileVersion>
3333
<Copyright>Copyright © 2023</Copyright>
34-
<Version>4.8.3-beta8</Version>
34+
<Version>4.8.4</Version>
3535
<SignAssembly>true</SignAssembly>
3636
<AssemblyOriginatorKeyFile>ITfoxtec.SAML2.snk</AssemblyOriginatorKeyFile>
3737
<DelaySign>false</DelaySign>

src/ITfoxtec.Identity.Saml2/Bindings/Saml2SoapEnvelope.cs

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ protected override Saml2SoapEnvelope BindInternal(Saml2Request saml2Request, str
2828

2929
BindInternal(saml2Request);
3030

31-
SoapResponseXml = ToSoapXml().OuterXml;
31+
SoapResponseXml = ToSoapXml();
3232
return this;
3333
}
3434

@@ -44,7 +44,7 @@ protected override Saml2Request Read(HttpRequest request, Saml2Request saml2Requ
4444
if (!(saml2Request is Saml2ArtifactResolve saml2ArtifactResolve))
4545
throw new ArgumentException("Only Saml2ArtifactResolve is supported");
4646

47-
saml2ArtifactResolve.Read(FromSoapXml(request.Body).OuterXml, validate, detectReplayedTokens);
47+
saml2ArtifactResolve.Read(FromSoapXml(request.Body), validate, detectReplayedTokens);
4848
XmlDocument = saml2ArtifactResolve.XmlDocument;
4949
return saml2ArtifactResolve;
5050
}
@@ -77,7 +77,7 @@ public virtual async Task ResolveAsync(
7777
saml2ArtifactResolve.Destination = artifactDestination;
7878
XmlDocument = saml2ArtifactResolve.ToXml();
7979

80-
var content = new StringContent(ToSoapXml().OuterXml, Encoding.UTF8, "text/xml");
80+
var content = new StringContent(ToSoapXml(), Encoding.UTF8, "text/xml");
8181
content.Headers.Add("SOAPAction", "\"http://www.oasis-open.org/committees/security\"");
8282

8383
using (var response = cancellationToken.HasValue ? await httpClient.PostAsync(artifactDestination, content, cancellationToken.Value) : await httpClient.PostAsync(artifactDestination, content))
@@ -93,7 +93,7 @@ public virtual async Task ResolveAsync(
9393

9494
var ares = new Saml2ArtifactResponse(saml2ArtifactResolve.Config, saml2Request);
9595
SetSignatureValidationCertificates(ares);
96-
ares.Read(FromSoapXml(result).OuterXml, ares.SignatureValidationCertificates?.Count() > 0, true);
96+
ares.Read(FromSoapXml(result), ares.SignatureValidationCertificates?.Count() > 0, true);
9797
ares.Status = Saml2StatusCodes.Success;
9898
break;
9999

@@ -103,13 +103,13 @@ public virtual async Task ResolveAsync(
103103
}
104104
}
105105

106-
protected virtual XmlDocument ToSoapXml()
106+
protected virtual string ToSoapXml()
107107
{
108108
var envelope = new XElement(Saml2Constants.SoapEnvironmentNamespaceX + Saml2Constants.Message.Envelope);
109109

110110
envelope.Add(GetXContent());
111111

112-
return envelope.ToXmlDocument();
112+
return envelope.ToString(SaveOptions.DisableFormatting);
113113
}
114114

115115
protected IEnumerable<XObject> GetXContent()
@@ -118,7 +118,7 @@ protected IEnumerable<XObject> GetXContent()
118118
yield return new XElement(Saml2Constants.SoapEnvironmentNamespaceX + Saml2Constants.Message.Body, XmlDocument.ToXDocument().Root);
119119
}
120120

121-
protected virtual XmlDocument FromSoapXml(string xml)
121+
protected virtual string FromSoapXml(string xml)
122122
{
123123
var xmlDoc = xml.ToXmlDocument();
124124

@@ -136,7 +136,7 @@ protected virtual XmlDocument FromSoapXml(string xml)
136136
throw new Saml2RequestException("SAML 2.0 Artifact SOAP error: " + faultcode + "\n" + faultstring);
137137
}
138138

139-
return bodyList[0].InnerXml.ToXmlDocument();
139+
return bodyList[0].InnerXml;
140140
}
141141

142142
private XmlNodeList GetNodesByLocalname(XmlNode xe, string localName)

src/ITfoxtec.Identity.Saml2/ITfoxtec.Identity.Saml2.csproj

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,10 +29,10 @@ Support the Danish NemLog-in 2 / OIOSAML 2 and NemLog-in 3 / OIOSAML 3.</Descrip
2929
<PackageTags>SAML SAML 2.0 SAML2.0 SAML2 SAML 2 SAML-P SAMLP SSO Identity Provider (IdP) Relying Party (RP) Authentication Metadata OIOSAML OIOSAML 2 OIOSAML 3 NemLogin NemLog-in 2 NemLog-in 3</PackageTags>
3030
<NeutralLanguage>en-US</NeutralLanguage>
3131
<PackageIconUrl>https://itfoxtec.com/favicon.ico</PackageIconUrl>
32-
<AssemblyVersion>4.8.3.8</AssemblyVersion>
33-
<FileVersion>4.8.3.8</FileVersion>
32+
<AssemblyVersion>4.8.4</AssemblyVersion>
33+
<FileVersion>4.8.4</FileVersion>
3434
<Copyright>Copyright © 2023</Copyright>
35-
<Version>4.8.3-beta8</Version>
35+
<Version>4.8.4</Version>
3636
<SignAssembly>true</SignAssembly>
3737
<AssemblyOriginatorKeyFile>ITfoxtec.SAML2.snk</AssemblyOriginatorKeyFile>
3838
<DelaySign>false</DelaySign>

test/TestWebAppCoreArtifact/Controllers/IdPInitiatedController.cs

Lines changed: 0 additions & 52 deletions
This file was deleted.

test/TestWebAppCoreArtifact/Views/Shared/_Layout.cshtml

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,9 +30,6 @@
3030
<li class="nav-item">
3131
<a class="nav-link text-dark" asp-controller="Home" asp-action="Secure">Secure Page</a>
3232
</li>
33-
<li class="nav-item">
34-
<a class="nav-link text-dark" asp-controller="IdPInitiated" asp-action="Initiate">IdP Initiated</a>
35-
</li>
3633
<li class="nav-item">
3734
<a class="nav-link text-dark" asp-controller="Metadata" asp-action="Index">Metadata</a>
3835
</li>

0 commit comments

Comments
 (0)