summaryrefslogtreecommitdiffstats
path: root/src/DotNetOpenAuth.OAuth2.AuthorizationServer/OAuth2/ChannelElements
diff options
context:
space:
mode:
authorAndrew Arnott <andrewarnott@gmail.com>2012-03-18 22:15:41 -0700
committerAndrew Arnott <andrewarnott@gmail.com>2012-03-18 22:15:41 -0700
commiteaf822454994249e6e287dcef3124aaa862c760c (patch)
tree1c11c6b45f7575ca2b0e73defd0a7e965b3ab4ce /src/DotNetOpenAuth.OAuth2.AuthorizationServer/OAuth2/ChannelElements
parent639a40d5de04c63a3b103488c5a39440c58455e2 (diff)
downloadDotNetOpenAuth-eaf822454994249e6e287dcef3124aaa862c760c.zip
DotNetOpenAuth-eaf822454994249e6e287dcef3124aaa862c760c.tar.gz
DotNetOpenAuth-eaf822454994249e6e287dcef3124aaa862c760c.tar.bz2
All unit tests pass again.
Diffstat (limited to 'src/DotNetOpenAuth.OAuth2.AuthorizationServer/OAuth2/ChannelElements')
-rw-r--r--src/DotNetOpenAuth.OAuth2.AuthorizationServer/OAuth2/ChannelElements/AccessTokenBindingElement.cs32
1 files changed, 19 insertions, 13 deletions
diff --git a/src/DotNetOpenAuth.OAuth2.AuthorizationServer/OAuth2/ChannelElements/AccessTokenBindingElement.cs b/src/DotNetOpenAuth.OAuth2.AuthorizationServer/OAuth2/ChannelElements/AccessTokenBindingElement.cs
index 05c07fa..1dd650c 100644
--- a/src/DotNetOpenAuth.OAuth2.AuthorizationServer/OAuth2/ChannelElements/AccessTokenBindingElement.cs
+++ b/src/DotNetOpenAuth.OAuth2.AuthorizationServer/OAuth2/ChannelElements/AccessTokenBindingElement.cs
@@ -46,34 +46,40 @@ namespace DotNetOpenAuth.OAuth2.ChannelElements {
public override MessageProtections? ProcessOutgoingMessage(IProtocolMessage message) {
var directResponse = message as IDirectResponseProtocolMessage;
var request = directResponse != null ? directResponse.OriginatingRequest as IAccessTokenRequestInternal : null;
+ var authCarryingRequest = request as IAuthorizationCarryingRequest;
+ var accessTokenResponse = message as IAccessTokenIssuingResponse;
+ var implicitGrantResponse = message as EndUserAuthorizationSuccessAccessTokenResponse;
if (request != null) {
request.AccessTokenCreationParameters = this.AuthorizationServer.GetAccessTokenParameters(request);
ErrorUtilities.VerifyHost(request.AccessTokenCreationParameters != null, "IAuthorizationServer.GetAccessTokenParameters must not return null.");
+
+ if (accessTokenResponse != null) {
+ accessTokenResponse.Lifetime = request.AccessTokenCreationParameters.AccessTokenLifetime;
+ }
}
- var implicitGrantResponse = message as EndUserAuthorizationSuccessAccessTokenResponse;
- if (implicitGrantResponse != null) {
+ AccessToken accessToken = null;
+ if (authCarryingRequest != null) {
+ ErrorUtilities.VerifyInternal(request != null, MessagingStrings.UnexpectedMessageReceived, typeof(IAccessTokenRequestInternal), request.GetType());
+ accessToken = new AccessToken(authCarryingRequest.AuthorizationDescription, accessTokenResponse.Lifetime);
+ } else if (implicitGrantResponse != null) {
IAccessTokenCarryingRequest tokenCarryingResponse = implicitGrantResponse;
- tokenCarryingResponse.AuthorizationDescription = new AccessToken(request.ClientIdentifier, implicitGrantResponse.Scope, implicitGrantResponse.AuthorizingUsername, implicitGrantResponse.Lifetime);
-
- return MessageProtections.None;
+ accessToken = new AccessToken(
+ request.ClientIdentifier,
+ implicitGrantResponse.Scope,
+ implicitGrantResponse.AuthorizingUsername,
+ implicitGrantResponse.Lifetime);
}
- var accessTokenResponse = message as IAccessTokenIssuingResponse;
- if (accessTokenResponse != null) {
- ErrorUtilities.VerifyInternal(request != null, MessagingStrings.UnexpectedMessageReceived, typeof(IAccessTokenRequestInternal), request.GetType());
- var authCarryingRequest = (IAuthorizationCarryingRequest)request;
- var accessToken = new AccessToken(authCarryingRequest.AuthorizationDescription, accessTokenResponse.Lifetime);
- var accessTokenFormatter = AccessToken.CreateFormatter(this.AuthorizationServer.AccessTokenSigningKey, request.AccessTokenCreationParameters.ResourceServerEncryptionKey);
+ if (accessToken != null) {
accessTokenResponse.AuthorizationDescription = accessToken;
+ var accessTokenFormatter = AccessToken.CreateFormatter(this.AuthorizationServer.AccessTokenSigningKey, request.AccessTokenCreationParameters.ResourceServerEncryptionKey);
accessTokenResponse.AccessToken = accessTokenFormatter.Serialize(accessToken);
- accessTokenResponse.Lifetime = request.AccessTokenCreationParameters.AccessTokenLifetime;
}
var refreshTokenResponse = message as AccessTokenSuccessResponse;
if (refreshTokenResponse != null && refreshTokenResponse.HasRefreshToken) {
- var authCarryingRequest = (IAuthorizationCarryingRequest)request;
var refreshToken = new RefreshToken(authCarryingRequest.AuthorizationDescription);
var refreshTokenFormatter = RefreshToken.CreateFormatter(this.AuthorizationServer.CryptoKeyStore);
refreshTokenResponse.RefreshToken = refreshTokenFormatter.Serialize(refreshToken);