summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/DotNetOpenAuth/DotNetOpenAuth.csproj2
-rw-r--r--src/DotNetOpenAuth/OAuthWrap/ChannelElements/OAuthWrapAuthorizationServerChannel.cs26
-rw-r--r--src/DotNetOpenAuth/OAuthWrap/ChannelElements/WebAppVerificationCodeBindingElement.cs (renamed from src/DotNetOpenAuth/OAuthWrap/ChannelElements/WebAppAccessTokenRequestVerifier.cs)15
-rw-r--r--src/DotNetOpenAuth/OAuthWrap/ClientBase.cs4
-rw-r--r--src/DotNetOpenAuth/OAuthWrap/WebAppAuthorizationServer.cs8
5 files changed, 29 insertions, 26 deletions
diff --git a/src/DotNetOpenAuth/DotNetOpenAuth.csproj b/src/DotNetOpenAuth/DotNetOpenAuth.csproj
index 6dcc742..d282777 100644
--- a/src/DotNetOpenAuth/DotNetOpenAuth.csproj
+++ b/src/DotNetOpenAuth/DotNetOpenAuth.csproj
@@ -313,7 +313,7 @@ http://opensource.org/licenses/ms-pl.html
<Compile Include="Messaging\StandardMessageFactoryChannel.cs" />
<Compile Include="OAuthWrap\ChannelElements\TimestampEncoder.cs" />
<Compile Include="OAuthWrap\ChannelElements\VerificationCode.cs" />
- <Compile Include="OAuthWrap\ChannelElements\WebAppAccessTokenRequestVerifier.cs" />
+ <Compile Include="OAuthWrap\ChannelElements\WebAppVerificationCodeBindingElement.cs" />
<Compile Include="OAuthWrap\IAccessTokenAnalyzer.cs" />
<Compile Include="OAuthWrap\IAuthorizationServer.cs" />
<Compile Include="OAuthWrap\IAuthorizationState.cs" />
diff --git a/src/DotNetOpenAuth/OAuthWrap/ChannelElements/OAuthWrapAuthorizationServerChannel.cs b/src/DotNetOpenAuth/OAuthWrap/ChannelElements/OAuthWrapAuthorizationServerChannel.cs
index 063d941..aae511d 100644
--- a/src/DotNetOpenAuth/OAuthWrap/ChannelElements/OAuthWrapAuthorizationServerChannel.cs
+++ b/src/DotNetOpenAuth/OAuthWrap/ChannelElements/OAuthWrapAuthorizationServerChannel.cs
@@ -22,8 +22,6 @@ namespace DotNetOpenAuth.OAuthWrap.ChannelElements {
/// The channel for the OAuth WRAP protocol.
/// </summary>
internal class OAuthWrapAuthorizationServerChannel : StandardMessageFactoryChannel {
- public IAuthorizationServer AuthorizationServer { get; set; }
-
private static readonly Type[] MessageTypes = new Type[] {
typeof(Messages.RefreshAccessTokenRequest),
typeof(Messages.AccessTokenSuccessResponse),
@@ -56,13 +54,17 @@ namespace DotNetOpenAuth.OAuthWrap.ChannelElements {
/// <summary>
/// Initializes a new instance of the <see cref="OAuthWrapAuthorizationServerChannel"/> class.
/// </summary>
- protected internal OAuthWrapAuthorizationServerChannel(IAuthorizationServer authorizationServer)
+ protected internal OAuthWrapAuthorizationServerChannel(IAuthorizationServer authorizationServer = null)
: base(MessageTypes, Versions, InitializeBindingElements(authorizationServer)) {
- Contract.Requires<ArgumentNullException>(authorizationServer != null, "authorizationServer");
-
this.AuthorizationServer = authorizationServer;
}
+ /// <summary>
+ /// Gets or sets the authorization server.
+ /// </summary>
+ /// <value>The authorization server. Will be null for channels serving clients.</value>
+ public IAuthorizationServer AuthorizationServer { get; set; }
+
public virtual AccessTokenSuccessResponse PrepareAccessToken(IAccessTokenRequest request) {
Contract.Requires<ArgumentNullException>(request != null, "request");
@@ -131,11 +133,9 @@ namespace DotNetOpenAuth.OAuthWrap.ChannelElements {
protected override OutgoingWebResponse PrepareDirectResponse(IProtocolMessage response) {
var directResponse = (IDirectResponseProtocolMessage)response;
var formatSpecifyingRequest = directResponse.OriginatingRequest as IOAuthDirectResponseFormat;
- if (formatSpecifyingRequest != null)
- {
+ if (formatSpecifyingRequest != null) {
ResponseFormat format = formatSpecifyingRequest.Format;
- switch (format)
- {
+ switch (format) {
case ResponseFormat.Xml:
throw new NotImplementedException();
case ResponseFormat.Form:
@@ -158,11 +158,11 @@ namespace DotNetOpenAuth.OAuthWrap.ChannelElements {
/// An array of binding elements used to initialize the channel.
/// </returns>
private static IChannelBindingElement[] InitializeBindingElements(IAuthorizationServer authorizationServer) {
- Contract.Requires<ArgumentNullException>(authorizationServer != null, "authorizationServer");
+ var bindingElements = new List<IChannelBindingElement>();
- var bindingElements = new List<IChannelBindingElement> {
- new WebAppAccessTokenRequestVerifier(),
- };
+ if (authorizationServer != null) {
+ bindingElements.Add(new WebAppVerificationCodeBindingElement());
+ }
return bindingElements.ToArray();
}
diff --git a/src/DotNetOpenAuth/OAuthWrap/ChannelElements/WebAppAccessTokenRequestVerifier.cs b/src/DotNetOpenAuth/OAuthWrap/ChannelElements/WebAppVerificationCodeBindingElement.cs
index 645f55d..f85cf98 100644
--- a/src/DotNetOpenAuth/OAuthWrap/ChannelElements/WebAppAccessTokenRequestVerifier.cs
+++ b/src/DotNetOpenAuth/OAuthWrap/ChannelElements/WebAppVerificationCodeBindingElement.cs
@@ -1,11 +1,9 @@
//-----------------------------------------------------------------------
-// <copyright file="WebAppAccessTokenRequestVerifier.cs" company="Andrew Arnott">
+// <copyright file="WebAppVerificationCodeBindingElement.cs" company="Andrew Arnott">
// Copyright (c) Andrew Arnott. All rights reserved.
// </copyright>
//-----------------------------------------------------------------------
-using DotNetOpenAuth.Messaging.Bindings;
-
namespace DotNetOpenAuth.OAuthWrap.ChannelElements {
using System;
using System.Collections.Generic;
@@ -13,14 +11,19 @@ namespace DotNetOpenAuth.OAuthWrap.ChannelElements {
using System.Text;
using Messages;
using Messaging;
+ using Messaging.Bindings;
- internal class WebAppAccessTokenRequestVerifier : IChannelBindingElement {
+ /// <summary>
+ /// A binding element for OAuth 2.0 authorization servers that create/verify
+ /// issued verification codes as part of obtaining access/refresh tokens.
+ /// </summary>
+ internal class WebAppVerificationCodeBindingElement : IChannelBindingElement {
private const string VerificationCodeContext = "{VerificationCode}";
/// <summary>
- /// Initializes a new instance of the <see cref="WebAppAccessTokenRequestVerifier"/> class.
+ /// Initializes a new instance of the <see cref="WebAppVerificationCodeBindingElement"/> class.
/// </summary>
- internal WebAppAccessTokenRequestVerifier() {
+ internal WebAppVerificationCodeBindingElement() {
}
/// <summary>
diff --git a/src/DotNetOpenAuth/OAuthWrap/ClientBase.cs b/src/DotNetOpenAuth/OAuthWrap/ClientBase.cs
index bb308d9..e417b73 100644
--- a/src/DotNetOpenAuth/OAuthWrap/ClientBase.cs
+++ b/src/DotNetOpenAuth/OAuthWrap/ClientBase.cs
@@ -16,7 +16,7 @@ namespace DotNetOpenAuth.OAuthWrap {
using DotNetOpenAuth.OAuthWrap.ChannelElements;
/// <summary>
- /// A base class for common OAuth WRAP Consumer behaviors.
+ /// A base class for common OAuth WRAP Client behaviors.
/// </summary>
public class ClientBase {
/// <summary>
@@ -26,7 +26,7 @@ namespace DotNetOpenAuth.OAuthWrap {
protected ClientBase(AuthorizationServerDescription authorizationServer) {
Contract.Requires<ArgumentNullException>(authorizationServer != null);
this.AuthorizationServer = authorizationServer;
- this.Channel = new OAuthWrapAuthorizationServerChannel(authorizationServer);
+ this.Channel = new OAuthWrapAuthorizationServerChannel();
}
/// <summary>
diff --git a/src/DotNetOpenAuth/OAuthWrap/WebAppAuthorizationServer.cs b/src/DotNetOpenAuth/OAuthWrap/WebAppAuthorizationServer.cs
index 9ba212f..b403f91 100644
--- a/src/DotNetOpenAuth/OAuthWrap/WebAppAuthorizationServer.cs
+++ b/src/DotNetOpenAuth/OAuthWrap/WebAppAuthorizationServer.cs
@@ -42,7 +42,6 @@ namespace DotNetOpenAuth.OAuthWrap {
public void ApproveAuthorizationRequest(WebAppRequest authorizationRequest, Uri callback = null) {
Contract.Requires<ArgumentNullException>(authorizationRequest != null, "authorizationRequest");
- Contract.Ensures(Contract.Result<OutgoingWebResponse>() != null);
var response = this.PrepareApproveAuthorizationRequest(authorizationRequest, callback);
this.Channel.Send(response);
@@ -50,7 +49,6 @@ namespace DotNetOpenAuth.OAuthWrap {
public void RejectAuthorizationRequest(WebAppRequest authorizationRequest, Uri callback = null) {
Contract.Requires<ArgumentNullException>(authorizationRequest != null, "authorizationRequest");
- Contract.Ensures(Contract.Result<OutgoingWebResponse>() != null);
var response = this.PrepareRejectAuthorizationRequest(authorizationRequest, callback);
this.Channel.Send(response);
@@ -79,7 +77,7 @@ namespace DotNetOpenAuth.OAuthWrap {
internal WebAppFailedResponse PrepareRejectAuthorizationRequest(WebAppRequest authorizationRequest, Uri callback = null) {
Contract.Requires<ArgumentNullException>(authorizationRequest != null, "authorizationRequest");
- Contract.Ensures(Contract.Result<OutgoingWebResponse>() != null);
+ Contract.Ensures(Contract.Result<WebAppFailedResponse>() != null);
if (callback == null) {
callback = this.GetCallback(authorizationRequest);
@@ -91,7 +89,7 @@ namespace DotNetOpenAuth.OAuthWrap {
internal WebAppSuccessResponse PrepareApproveAuthorizationRequest(WebAppRequest authorizationRequest, Uri callback = null) {
Contract.Requires<ArgumentNullException>(authorizationRequest != null, "authorizationRequest");
- Contract.Ensures(Contract.Result<OutgoingWebResponse>() != null);
+ Contract.Ensures(Contract.Result<WebAppSuccessResponse>() != null);
if (callback == null) {
callback = this.GetCallback(authorizationRequest);
@@ -114,6 +112,8 @@ namespace DotNetOpenAuth.OAuthWrap {
internal AccessTokenSuccessResponse PrepareAccessTokenResponse(WebAppAccessTokenRequest request) {
Contract.Requires<ArgumentNullException>(request != null, "request");
+ Contract.Ensures(Contract.Result<AccessTokenSuccessResponse>() != null);
+
return this.OAuthChannel.PrepareAccessToken(request);
}