diff options
Diffstat (limited to 'src/DotNetOAuth/ChannelElements')
-rw-r--r-- | src/DotNetOAuth/ChannelElements/OAuthChannel.cs | 5 | ||||
-rw-r--r-- | src/DotNetOAuth/ChannelElements/OAuthMessageTypeProvider.cs | 19 |
2 files changed, 21 insertions, 3 deletions
diff --git a/src/DotNetOAuth/ChannelElements/OAuthChannel.cs b/src/DotNetOAuth/ChannelElements/OAuthChannel.cs index 5ba69e7..2d0d1b4 100644 --- a/src/DotNetOAuth/ChannelElements/OAuthChannel.cs +++ b/src/DotNetOAuth/ChannelElements/OAuthChannel.cs @@ -31,8 +31,9 @@ namespace DotNetOAuth.ChannelElements { /// </summary>
/// <param name="signingBindingElement">The binding element to use for signing.</param>
/// <param name="store">The web application store to use for nonces.</param>
- internal OAuthChannel(SigningBindingElementBase signingBindingElement, INonceStore store)
- : this(signingBindingElement, store, new OAuthMessageTypeProvider(), new StandardWebRequestHandler()) {
+ /// <param name="tokenManager">The token manager instance to use.</param>
+ internal OAuthChannel(SigningBindingElementBase signingBindingElement, INonceStore store, ITokenManager tokenManager)
+ : this(signingBindingElement, store, new OAuthMessageTypeProvider(tokenManager), new StandardWebRequestHandler()) {
}
/// <summary>
diff --git a/src/DotNetOAuth/ChannelElements/OAuthMessageTypeProvider.cs b/src/DotNetOAuth/ChannelElements/OAuthMessageTypeProvider.cs index 0d30ec1..e0fdc01 100644 --- a/src/DotNetOAuth/ChannelElements/OAuthMessageTypeProvider.cs +++ b/src/DotNetOAuth/ChannelElements/OAuthMessageTypeProvider.cs @@ -15,6 +15,23 @@ namespace DotNetOAuth.ChannelElements { /// interface.
/// </summary>
internal class OAuthMessageTypeProvider : IMessageTypeProvider {
+ /// <summary>
+ /// The token manager to use for discerning between request and access tokens.
+ /// </summary>
+ private ITokenManager tokenManager;
+
+ /// <summary>
+ /// Initializes a new instance of the <see cref="OAuthMessageTypeProvider"/> class.
+ /// </summary>
+ /// <param name="tokenManager">The token manager instance to use.</param>
+ internal OAuthMessageTypeProvider(ITokenManager tokenManager) {
+ if (tokenManager == null) {
+ throw new ArgumentNullException("tokenManager");
+ }
+
+ this.tokenManager = tokenManager;
+ }
+
#region IMessageTypeProvider Members
/// <summary>
@@ -48,7 +65,7 @@ namespace DotNetOAuth.ChannelElements { // Discern between RequestAccessToken and AccessProtectedResources,
// which have all the same parameters, by figuring out what type of token
// is in the token parameter.
- bool tokenTypeIsAccessToken = false; // TODO
+ bool tokenTypeIsAccessToken = this.tokenManager.GetTokenType(fields["oauth_token"]) == TokenType.AccessToken;
return tokenTypeIsAccessToken ? typeof(AccessProtectedResourcesMessage) :
typeof(RequestAccessTokenMessage);
|