summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndrew Arnott <andrewarnott@gmail.com>2009-09-13 15:36:09 -0700
committerAndrew Arnott <andrewarnott@gmail.com>2009-09-13 15:36:09 -0700
commita029da59621d7f0ddfab52934d6553fc1076bb86 (patch)
tree069f26ee8d45a7a65e339b1f48a6c59d5fdd3145
parent89e8bdeed9bb5181c636473c37f4eb86c8fafe0e (diff)
downloadDotNetOpenAuth-a029da59621d7f0ddfab52934d6553fc1076bb86.zip
DotNetOpenAuth-a029da59621d7f0ddfab52934d6553fc1076bb86.tar.gz
DotNetOpenAuth-a029da59621d7f0ddfab52934d6553fc1076bb86.tar.bz2
Providers can now customize their own OP endpoint URL in positive assertions via the new IHostProcessedRequest.ProviderEndpoint property.v3.2.2.9257
Fixes #124
-rw-r--r--src/DotNetOpenAuth/OpenId/Provider/AnonymousRequest.cs15
-rw-r--r--src/DotNetOpenAuth/OpenId/Provider/AuthenticationRequest.cs15
-rw-r--r--src/DotNetOpenAuth/OpenId/Provider/HostProcessedRequest.cs8
-rw-r--r--src/DotNetOpenAuth/OpenId/Provider/IHostProcessedRequest.cs28
4 files changed, 66 insertions, 0 deletions
diff --git a/src/DotNetOpenAuth/OpenId/Provider/AnonymousRequest.cs b/src/DotNetOpenAuth/OpenId/Provider/AnonymousRequest.cs
index b53e1f6..a500e3b 100644
--- a/src/DotNetOpenAuth/OpenId/Provider/AnonymousRequest.cs
+++ b/src/DotNetOpenAuth/OpenId/Provider/AnonymousRequest.cs
@@ -37,6 +37,21 @@ namespace DotNetOpenAuth.OpenId.Provider {
this.positiveResponse = new IndirectSignedResponse(request);
}
+ #region HostProcessedRequest members
+
+ /// <summary>
+ /// Gets or sets the provider endpoint.
+ /// </summary>
+ /// <value>
+ /// The default value is the URL that the request came in on from the relying party.
+ /// </value>
+ public override Uri ProviderEndpoint {
+ get { return this.positiveResponse.ProviderEndpoint; }
+ set { this.positiveResponse.ProviderEndpoint = value; }
+ }
+
+ #endregion
+
#region IAnonymousRequest Members
/// <summary>
diff --git a/src/DotNetOpenAuth/OpenId/Provider/AuthenticationRequest.cs b/src/DotNetOpenAuth/OpenId/Provider/AuthenticationRequest.cs
index 56e73da..a5d936b 100644
--- a/src/DotNetOpenAuth/OpenId/Provider/AuthenticationRequest.cs
+++ b/src/DotNetOpenAuth/OpenId/Provider/AuthenticationRequest.cs
@@ -48,6 +48,21 @@ namespace DotNetOpenAuth.OpenId.Provider {
this.IsDelegatedIdentifier = this.ClaimedIdentifier != null && this.ClaimedIdentifier != this.LocalIdentifier;
}
+ #region HostProcessedRequest members
+
+ /// <summary>
+ /// Gets or sets the provider endpoint.
+ /// </summary>
+ /// <value>
+ /// The default value is the URL that the request came in on from the relying party.
+ /// </value>
+ public override Uri ProviderEndpoint {
+ get { return this.positiveResponse.ProviderEndpoint; }
+ set { this.positiveResponse.ProviderEndpoint = value; }
+ }
+
+ #endregion
+
/// <summary>
/// Gets a value indicating whether the response is ready to be created and sent.
/// </summary>
diff --git a/src/DotNetOpenAuth/OpenId/Provider/HostProcessedRequest.cs b/src/DotNetOpenAuth/OpenId/Provider/HostProcessedRequest.cs
index 6e61376..301f150 100644
--- a/src/DotNetOpenAuth/OpenId/Provider/HostProcessedRequest.cs
+++ b/src/DotNetOpenAuth/OpenId/Provider/HostProcessedRequest.cs
@@ -66,6 +66,14 @@ namespace DotNetOpenAuth.OpenId.Provider {
get { return this.RequestMessage.Realm; }
}
+ /// <summary>
+ /// Gets or sets the provider endpoint.
+ /// </summary>
+ /// <value>
+ /// The default value is the URL that the request came in on from the relying party.
+ /// </value>
+ public abstract Uri ProviderEndpoint { get; set; }
+
#endregion
/// <summary>
diff --git a/src/DotNetOpenAuth/OpenId/Provider/IHostProcessedRequest.cs b/src/DotNetOpenAuth/OpenId/Provider/IHostProcessedRequest.cs
index 5256fdd..345ba52 100644
--- a/src/DotNetOpenAuth/OpenId/Provider/IHostProcessedRequest.cs
+++ b/src/DotNetOpenAuth/OpenId/Provider/IHostProcessedRequest.cs
@@ -33,6 +33,16 @@ namespace DotNetOpenAuth.OpenId.Provider {
bool Immediate { get; }
/// <summary>
+ /// Gets or sets the provider endpoint claimed in the positive assertion.
+ /// </summary>
+ /// <value>
+ /// The default value is the URL that the request came in on from the relying party.
+ /// This value MUST match the value for the OP Endpoint in the discovery results for the
+ /// claimed identifier being asserted in a positive response.
+ /// </value>
+ Uri ProviderEndpoint { get; set; }
+
+ /// <summary>
/// Attempts to perform relying party discovery of the return URL claimed by the Relying Party.
/// </summary>
/// <param name="provider">The OpenIdProvider that is performing the RP discovery.</param>
@@ -76,6 +86,24 @@ namespace DotNetOpenAuth.OpenId.Provider {
get { throw new System.NotImplementedException(); }
}
+ /// <summary>
+ /// Gets or sets the provider endpoint.
+ /// </summary>
+ /// <value>
+ /// The default value is the URL that the request came in on from the relying party.
+ /// </value>
+ Uri IHostProcessedRequest.ProviderEndpoint {
+ get {
+ Contract.Ensures(Contract.Result<Uri>() != null);
+ throw new NotImplementedException();
+ }
+
+ set {
+ Contract.Requires(value != null);
+ throw new NotImplementedException();
+ }
+ }
+
#endregion
#region IRequest Members