diff options
author | Andrew Arnott <andrewarnott@gmail.com> | 2012-04-08 18:18:02 -0700 |
---|---|---|
committer | Andrew Arnott <andrewarnott@gmail.com> | 2012-04-08 18:18:02 -0700 |
commit | fc8822bbe33f8eb75d039d478c15c84e02145f5b (patch) | |
tree | 4adc74038c1ae9fd64a785434e6cabb9f31341c0 | |
parent | e21ca9bea06663e6cf37671eca262534f2480f0b (diff) | |
download | DotNetOpenAuth-fc8822bbe33f8eb75d039d478c15c84e02145f5b.zip DotNetOpenAuth-fc8822bbe33f8eb75d039d478c15c84e02145f5b.tar.gz DotNetOpenAuth-fc8822bbe33f8eb75d039d478c15c84e02145f5b.tar.bz2 |
Added a public constructor to ClaimsResponse.
Also made the probable type URIs that it accepts public and easily discoverable.
Fixes #116
9 files changed, 47 insertions, 23 deletions
diff --git a/src/DotNetOpenAuth.OpenId.Provider/OpenId/Provider/Extensions/ExtensionsInteropHelper.cs b/src/DotNetOpenAuth.OpenId.Provider/OpenId/Provider/Extensions/ExtensionsInteropHelper.cs index 6ffb326..946d354 100644 --- a/src/DotNetOpenAuth.OpenId.Provider/OpenId/Provider/Extensions/ExtensionsInteropHelper.cs +++ b/src/DotNetOpenAuth.OpenId.Provider/OpenId/Provider/Extensions/ExtensionsInteropHelper.cs @@ -52,7 +52,7 @@ namespace DotNetOpenAuth.OpenId.Provider.Extensions { var ax = req.GetExtension<FetchRequest>(); if (ax != null) { - sreg = new ClaimsRequest(DotNetOpenAuth.OpenId.Extensions.SimpleRegistration.Constants.sreg_ns); + sreg = new ClaimsRequest(DotNetOpenAuth.OpenId.Extensions.SimpleRegistration.Constants.TypeUris.Standard); sreg.Synthesized = true; ((IProtocolMessageWithExtensions)req.RequestMessage).Extensions.Add(sreg); sreg.BirthDate = GetDemandLevelFor(ax, WellKnownAttributes.BirthDate.WholeBirthDate); diff --git a/src/DotNetOpenAuth.OpenId/OpenId/Extensions/ExtensionArgumentsManager.cs b/src/DotNetOpenAuth.OpenId/OpenId/Extensions/ExtensionArgumentsManager.cs index 5cd4904..1d795da 100644 --- a/src/DotNetOpenAuth.OpenId/OpenId/Extensions/ExtensionArgumentsManager.cs +++ b/src/DotNetOpenAuth.OpenId/OpenId/Extensions/ExtensionArgumentsManager.cs @@ -21,7 +21,7 @@ namespace DotNetOpenAuth.OpenId.Extensions { /// match to namespaces for backward compatibility with other OpenID libraries. /// </summary> private static readonly Dictionary<string, string> typeUriToAliasAffinity = new Dictionary<string, string> { - { Extensions.SimpleRegistration.Constants.sreg_ns, Extensions.SimpleRegistration.Constants.sreg_compatibility_alias }, + { Extensions.SimpleRegistration.Constants.TypeUris.Standard, Extensions.SimpleRegistration.Constants.sreg_compatibility_alias }, { Extensions.ProviderAuthenticationPolicy.Constants.TypeUri, Extensions.ProviderAuthenticationPolicy.Constants.CompatibilityAlias }, }; diff --git a/src/DotNetOpenAuth.OpenId/OpenId/Extensions/SimpleRegistration/ClaimsRequest.cs b/src/DotNetOpenAuth.OpenId/OpenId/Extensions/SimpleRegistration/ClaimsRequest.cs index 9d418ee..ab08cbb 100644 --- a/src/DotNetOpenAuth.OpenId/OpenId/Extensions/SimpleRegistration/ClaimsRequest.cs +++ b/src/DotNetOpenAuth.OpenId/OpenId/Extensions/SimpleRegistration/ClaimsRequest.cs @@ -24,7 +24,7 @@ namespace DotNetOpenAuth.OpenId.Extensions.SimpleRegistration { /// The factory method that may be used in deserialization of this message. /// </summary> internal static readonly StandardOpenIdExtensionFactory.CreateDelegate Factory = (typeUri, data, baseMessage, isProviderRole) => { - if (typeUri == Constants.sreg_ns && isProviderRole) { + if (typeUri == Constants.TypeUris.Standard && isProviderRole) { return new ClaimsRequest(typeUri); } @@ -41,7 +41,7 @@ namespace DotNetOpenAuth.OpenId.Extensions.SimpleRegistration { /// Initializes a new instance of the <see cref="ClaimsRequest"/> class. /// </summary> public ClaimsRequest() - : base(new Version(1, 0), Constants.sreg_ns, Constants.AdditionalTypeUris) { + : base(new Version(1, 0), Constants.TypeUris.Standard, Constants.AdditionalTypeUris) { } /// <summary> diff --git a/src/DotNetOpenAuth.OpenId/OpenId/Extensions/SimpleRegistration/ClaimsResponse.cs b/src/DotNetOpenAuth.OpenId/OpenId/Extensions/SimpleRegistration/ClaimsResponse.cs index 999fe8d..af60596 100644 --- a/src/DotNetOpenAuth.OpenId/OpenId/Extensions/SimpleRegistration/ClaimsResponse.cs +++ b/src/DotNetOpenAuth.OpenId/OpenId/Extensions/SimpleRegistration/ClaimsResponse.cs @@ -27,7 +27,7 @@ namespace DotNetOpenAuth.OpenId.Extensions.SimpleRegistration { /// The factory method that may be used in deserialization of this message. /// </summary> internal static readonly StandardOpenIdExtensionFactory.CreateDelegate Factory = (typeUri, data, baseMessage, isProviderRole) => { - if ((typeUri == Constants.sreg_ns || Array.IndexOf(Constants.AdditionalTypeUris, typeUri) >= 0) && !isProviderRole) { + if ((typeUri == Constants.TypeUris.Standard || Array.IndexOf(Constants.AdditionalTypeUris, typeUri) >= 0) && !isProviderRole) { return new ClaimsResponse(typeUri); } @@ -55,10 +55,11 @@ namespace DotNetOpenAuth.OpenId.Extensions.SimpleRegistration { private CultureInfo culture; /// <summary> - /// Initializes a new instance of the <see cref="ClaimsResponse"/> class. + /// Initializes a new instance of the <see cref="ClaimsResponse"/> class + /// using the most common, and spec prescribed type URI. /// </summary> - internal ClaimsResponse() - : this(Constants.sreg_ns) { + public ClaimsResponse() + : this(Constants.TypeUris.Standard) { } /// <summary> @@ -67,8 +68,10 @@ namespace DotNetOpenAuth.OpenId.Extensions.SimpleRegistration { /// <param name="typeUriToUse"> /// The type URI that must be used to identify this extension in the response message. /// This value should be the same one the relying party used to send the extension request. + /// Commonly used type URIs supported by relying parties are defined in the + /// <see cref="Constants.TypeUris"/> class. /// </param> - internal ClaimsResponse(string typeUriToUse) + public ClaimsResponse(string typeUriToUse = Constants.TypeUris.Standard) : base(new Version(1, 0), typeUriToUse, Constants.AdditionalTypeUris) { Requires.NotNullOrEmpty(typeUriToUse, "typeUriToUse"); } diff --git a/src/DotNetOpenAuth.OpenId/OpenId/Extensions/SimpleRegistration/Constants.cs b/src/DotNetOpenAuth.OpenId/OpenId/Extensions/SimpleRegistration/Constants.cs index 8325b0c..30cd748 100644 --- a/src/DotNetOpenAuth.OpenId/OpenId/Extensions/SimpleRegistration/Constants.cs +++ b/src/DotNetOpenAuth.OpenId/OpenId/Extensions/SimpleRegistration/Constants.cs @@ -13,10 +13,31 @@ namespace DotNetOpenAuth.OpenId.Extensions.SimpleRegistration { /// <summary> /// Simple Registration constants /// </summary> - internal static class Constants { - internal const string sreg_ns = "http://openid.net/extensions/sreg/1.1"; - internal const string sreg_ns10 = "http://openid.net/sreg/1.0"; - internal const string sreg_ns11other = "http://openid.net/sreg/1.1"; + public static class Constants { + /// <summary> + /// Commonly used type URIs to represent the Simple Registration extension. + /// </summary> + public static class TypeUris { + /// <summary> + /// The URI "http://openid.net/extensions/sreg/1.1". + /// </summary> + /// <remarks> + /// This is the type URI prescribed by the Simple Registration 1.1 spec. + /// http://openid.net/specs/openid-simple-registration-extension-1_1-01.html#anchor3 + /// </remarks> + public const string Standard = "http://openid.net/extensions/sreg/1.1"; + + /// <summary> + /// The URI "http://openid.net/sreg/1.0" + /// </summary> + public const string Variant10 = "http://openid.net/sreg/1.0"; + + /// <summary> + /// The URI "http://openid.net/sreg/1.1" + /// </summary> + public const string Variant11 = "http://openid.net/sreg/1.1"; + } + internal const string sreg_compatibility_alias = "sreg"; internal const string policy_url = "policy_url"; internal const string optional = "optional"; @@ -39,8 +60,8 @@ namespace DotNetOpenAuth.OpenId.Extensions.SimpleRegistration { /// Additional type URIs that this extension is sometimes known by remote parties. /// </summary> internal static readonly string[] AdditionalTypeUris = new string[] { - Constants.sreg_ns10, - Constants.sreg_ns11other, + Constants.TypeUris.Variant10, + Constants.TypeUris.Variant11, }; } } diff --git a/src/DotNetOpenAuth.Test/OpenId/Extensions/ExtensionsInteropHelperOPTests.cs b/src/DotNetOpenAuth.Test/OpenId/Extensions/ExtensionsInteropHelperOPTests.cs index 9592605..e9ff7a4 100644 --- a/src/DotNetOpenAuth.Test/OpenId/Extensions/ExtensionsInteropHelperOPTests.cs +++ b/src/DotNetOpenAuth.Test/OpenId/Extensions/ExtensionsInteropHelperOPTests.cs @@ -63,7 +63,7 @@ namespace DotNetOpenAuth.Test.OpenId.Extensions { /// </summary> [Test] public void UnifyExtensionsAsSregWithSreg() { - var sregInjected = new ClaimsRequest(DotNetOpenAuth.OpenId.Extensions.SimpleRegistration.Constants.sreg_ns) { + var sregInjected = new ClaimsRequest(DotNetOpenAuth.OpenId.Extensions.SimpleRegistration.Constants.TypeUris.Standard) { Nickname = DemandLevel.Request, }; this.extensions.Add(sregInjected); @@ -100,7 +100,7 @@ namespace DotNetOpenAuth.Test.OpenId.Extensions { /// </summary> [Test] public void UnifyExtensionsAsSregWithBothSregAndAX() { - var sregInjected = new ClaimsRequest(DotNetOpenAuth.OpenId.Extensions.SimpleRegistration.Constants.sreg_ns) { + var sregInjected = new ClaimsRequest(DotNetOpenAuth.OpenId.Extensions.SimpleRegistration.Constants.TypeUris.Standard) { Nickname = DemandLevel.Request, }; this.extensions.Add(sregInjected); diff --git a/src/DotNetOpenAuth.Test/OpenId/Extensions/ExtensionsInteropHelperRPRequestTests.cs b/src/DotNetOpenAuth.Test/OpenId/Extensions/ExtensionsInteropHelperRPRequestTests.cs index b5bcd7b..05ba3ad 100644 --- a/src/DotNetOpenAuth.Test/OpenId/Extensions/ExtensionsInteropHelperRPRequestTests.cs +++ b/src/DotNetOpenAuth.Test/OpenId/Extensions/ExtensionsInteropHelperRPRequestTests.cs @@ -88,7 +88,7 @@ namespace DotNetOpenAuth.Test.OpenId.Extensions { [Test] public void SpreadSregToAxNoOpIfOPSupportsSreg() { this.authReq.AddExtension(this.sreg); - this.InjectAdvertisedTypeUri(DotNetOpenAuth.OpenId.Extensions.SimpleRegistration.Constants.sreg_ns); + this.InjectAdvertisedTypeUri(DotNetOpenAuth.OpenId.Extensions.SimpleRegistration.Constants.TypeUris.Standard); ExtensionsInteropHelper.SpreadSregToAX(this.authReq, AXAttributeFormats.All); Assert.IsFalse(this.authReq.AppliedExtensions.OfType<FetchRequest>().Any()); } diff --git a/src/DotNetOpenAuth.Test/OpenId/Extensions/SimpleRegistration/ClaimsResponseTests.cs b/src/DotNetOpenAuth.Test/OpenId/Extensions/SimpleRegistration/ClaimsResponseTests.cs index 35bfc78..f898511 100644 --- a/src/DotNetOpenAuth.Test/OpenId/Extensions/SimpleRegistration/ClaimsResponseTests.cs +++ b/src/DotNetOpenAuth.Test/OpenId/Extensions/SimpleRegistration/ClaimsResponseTests.cs @@ -19,7 +19,7 @@ namespace DotNetOpenAuth.Test.OpenId.Extensions { public class ClaimsResponseTests { [Test] public void EmptyMailAddress() { - ClaimsResponse response = new ClaimsResponse(Constants.sreg_ns); + ClaimsResponse response = new ClaimsResponse(Constants.TypeUris.Standard); response.Email = string.Empty; Assert.IsNull(response.MailAddress); } @@ -133,17 +133,17 @@ namespace DotNetOpenAuth.Test.OpenId.Extensions { [Test] public void ResponseAlternateTypeUriTests() { - var request = new ClaimsRequest(Constants.sreg_ns10); + var request = new ClaimsRequest(Constants.TypeUris.Variant10); request.Email = DemandLevel.Require; - var response = new ClaimsResponse(Constants.sreg_ns10); + var response = new ClaimsResponse(Constants.TypeUris.Variant10); response.Email = "a@b.com"; ExtensionTestUtilities.Roundtrip(Protocol.Default, new[] { request }, new[] { response }); } private ClaimsResponse GetFilledData() { - return new ClaimsResponse(Constants.sreg_ns) { + return new ClaimsResponse(Constants.TypeUris.Standard) { BirthDate = new DateTime(2005, 2, 3), Culture = new System.Globalization.CultureInfo("en-US"), Email = "a@b.com", diff --git a/src/DotNetOpenAuth.Test/OpenId/RelyingParty/IdentifierDiscoveryResultTests.cs b/src/DotNetOpenAuth.Test/OpenId/RelyingParty/IdentifierDiscoveryResultTests.cs index 08e5a46..657b942 100644 --- a/src/DotNetOpenAuth.Test/OpenId/RelyingParty/IdentifierDiscoveryResultTests.cs +++ b/src/DotNetOpenAuth.Test/OpenId/RelyingParty/IdentifierDiscoveryResultTests.cs @@ -188,7 +188,7 @@ namespace DotNetOpenAuth.Test.OpenId.RelyingParty { se = IdentifierDiscoveryResult.CreateForProviderIdentifier( OPUri, - new ProviderEndpointDescription(OPUri, new[] { Protocol.V20.ClaimedIdentifierServiceTypeURI, "http://someextension", Constants.sreg_ns }), + new ProviderEndpointDescription(OPUri, new[] { Protocol.V20.ClaimedIdentifierServiceTypeURI, "http://someextension", Constants.TypeUris.Standard }), null, null); Assert.IsTrue(se.IsExtensionSupported<ClaimsRequest>()); |