diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/DotNetOpenAuth/DotNetOpenAuth.csproj | 2 | ||||
-rw-r--r-- | src/DotNetOpenAuth/OAuthWrap/ChannelElements/OAuthWrapAuthorizationServerChannel.cs | 26 | ||||
-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.cs | 4 | ||||
-rw-r--r-- | src/DotNetOpenAuth/OAuthWrap/WebAppAuthorizationServer.cs | 8 |
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); } |