diff options
author | Andrew Arnott <andrewarnott@gmail.com> | 2012-04-18 19:55:50 -0700 |
---|---|---|
committer | Andrew Arnott <andrewarnott@gmail.com> | 2012-04-18 19:55:50 -0700 |
commit | 2ddd19d9f037bebbbdc80d7de35ce4d899710859 (patch) | |
tree | baf8ad19d4799b1a1284b9fc668afd53e3b008a4 /src/DotNetOpenAuth.OAuth2.AuthorizationServer/OAuth2/ChannelElements/ClientCredentialHttpBasicReader.cs | |
parent | bd0de8217763d02759815b91588cd578becf496b (diff) | |
download | DotNetOpenAuth-2ddd19d9f037bebbbdc80d7de35ce4d899710859.zip DotNetOpenAuth-2ddd19d9f037bebbbdc80d7de35ce4d899710859.tar.gz DotNetOpenAuth-2ddd19d9f037bebbbdc80d7de35ce4d899710859.tar.bz2 |
We have HTTP Basic client authentication working now in OAuth 2.
Diffstat (limited to 'src/DotNetOpenAuth.OAuth2.AuthorizationServer/OAuth2/ChannelElements/ClientCredentialHttpBasicReader.cs')
-rw-r--r-- | src/DotNetOpenAuth.OAuth2.AuthorizationServer/OAuth2/ChannelElements/ClientCredentialHttpBasicReader.cs | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/src/DotNetOpenAuth.OAuth2.AuthorizationServer/OAuth2/ChannelElements/ClientCredentialHttpBasicReader.cs b/src/DotNetOpenAuth.OAuth2.AuthorizationServer/OAuth2/ChannelElements/ClientCredentialHttpBasicReader.cs new file mode 100644 index 0000000..da3f8ff --- /dev/null +++ b/src/DotNetOpenAuth.OAuth2.AuthorizationServer/OAuth2/ChannelElements/ClientCredentialHttpBasicReader.cs @@ -0,0 +1,37 @@ +//----------------------------------------------------------------------- +// <copyright file="ClientCredentialHttpBasicReader.cs" company="Andrew Arnott"> +// Copyright (c) Andrew Arnott. All rights reserved. +// </copyright> +//----------------------------------------------------------------------- + +namespace DotNetOpenAuth.OAuth2.ChannelElements { + using System; + using System.Collections.Generic; + using System.Linq; + using System.Text; + using System.Web; + using DotNetOpenAuth.Messaging; + using DotNetOpenAuth.OAuth2.Messages; + + public class ClientCredentialHttpBasicReader : ClientAuthenticationModuleBase { + private readonly IAuthorizationServerHost authorizationServerHost; + + public ClientCredentialHttpBasicReader(IAuthorizationServerHost authorizationServerHost) { + Requires.NotNull(authorizationServerHost, "authorizationServerHost"); + this.authorizationServerHost = authorizationServerHost; + } + + public override ClientAuthenticationResult TryAuthenticateClient(AuthenticatedClientRequestBase requestMessage, out string clientIdentifier) { + Requires.NotNull(requestMessage, "requestMessage"); + + var credential = OAuthUtilities.ParseHttpBasicAuth(requestMessage.Headers); + if (credential != null) { + clientIdentifier = credential.UserName; + return TryAuthenticateClient(this.authorizationServerHost, credential.UserName, credential.Password); + } + + clientIdentifier = null; + return ClientAuthenticationResult.NoAuthenticationRecognized; + } + } +} |