#501 Replace OpenIdConnectTokenEndpointResponse with an OpenIdConnectMessage
This commit is contained in:
parent
00c81d41aa
commit
ef61b14d6a
|
|
@ -13,6 +13,6 @@ namespace Microsoft.AspNet.Authentication.OpenIdConnect
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
public OpenIdConnectTokenEndpointResponse TokenEndpointResponse { get; set; }
|
public OpenIdConnectMessage TokenEndpointResponse { get; set; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -17,8 +17,8 @@ namespace Microsoft.AspNet.Authentication.OpenIdConnect
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Gets or sets the <see cref="OpenIdConnectTokenEndpointResponse"/> that contains the tokens and json response received after redeeming the code at the token endpoint.
|
/// Gets or sets the <see cref="OpenIdConnectMessage"/> that contains the tokens received after redeeming the code at the token endpoint.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public OpenIdConnectTokenEndpointResponse TokenEndpointResponse { get; set; }
|
public OpenIdConnectMessage TokenEndpointResponse { get; set; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -497,7 +497,7 @@ namespace Microsoft.AspNet.Authentication.OpenIdConnect
|
||||||
var validationParameters = Options.TokenValidationParameters.Clone();
|
var validationParameters = Options.TokenValidationParameters.Clone();
|
||||||
validationParameters.ValidateSignature = false;
|
validationParameters.ValidateSignature = false;
|
||||||
|
|
||||||
ticket = ValidateToken(tokenEndpointResponse.ProtocolMessage.IdToken, message, properties, validationParameters, out jwt);
|
ticket = ValidateToken(tokenEndpointResponse.IdToken, message, properties, validationParameters, out jwt);
|
||||||
|
|
||||||
var nonce = jwt?.Payload.Nonce;
|
var nonce = jwt?.Payload.Nonce;
|
||||||
if (!string.IsNullOrEmpty(nonce))
|
if (!string.IsNullOrEmpty(nonce))
|
||||||
|
|
@ -508,7 +508,7 @@ namespace Microsoft.AspNet.Authentication.OpenIdConnect
|
||||||
Options.ProtocolValidator.ValidateTokenResponse(new OpenIdConnectProtocolValidationContext()
|
Options.ProtocolValidator.ValidateTokenResponse(new OpenIdConnectProtocolValidationContext()
|
||||||
{
|
{
|
||||||
ClientId = Options.ClientId,
|
ClientId = Options.ClientId,
|
||||||
ProtocolMessage = tokenEndpointResponse.ProtocolMessage,
|
ProtocolMessage = tokenEndpointResponse,
|
||||||
ValidatedIdToken = jwt,
|
ValidatedIdToken = jwt,
|
||||||
Nonce = nonce
|
Nonce = nonce
|
||||||
});
|
});
|
||||||
|
|
@ -527,13 +527,13 @@ namespace Microsoft.AspNet.Authentication.OpenIdConnect
|
||||||
if (Options.SaveTokensAsClaims)
|
if (Options.SaveTokensAsClaims)
|
||||||
{
|
{
|
||||||
// Persist the tokens extracted from the token response.
|
// Persist the tokens extracted from the token response.
|
||||||
SaveTokens(ticket.Principal, tokenEndpointResponse.ProtocolMessage, saveRefreshToken: true);
|
SaveTokens(ticket.Principal, tokenEndpointResponse, saveRefreshToken: true);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Options.GetClaimsFromUserInfoEndpoint)
|
if (Options.GetClaimsFromUserInfoEndpoint)
|
||||||
{
|
{
|
||||||
Logger.LogDebug(22, "Sending request to user info endpoint for retrieving claims.");
|
Logger.LogDebug(22, "Sending request to user info endpoint for retrieving claims.");
|
||||||
ticket = await GetUserInformationAsync(tokenEndpointResponse.ProtocolMessage, jwt, ticket);
|
ticket = await GetUserInformationAsync(tokenEndpointResponse, jwt, ticket);
|
||||||
}
|
}
|
||||||
|
|
||||||
return AuthenticateResult.Success(ticket);
|
return AuthenticateResult.Success(ticket);
|
||||||
|
|
@ -618,7 +618,7 @@ namespace Microsoft.AspNet.Authentication.OpenIdConnect
|
||||||
/// <param name="authorizationCode">The authorization code to redeem.</param>
|
/// <param name="authorizationCode">The authorization code to redeem.</param>
|
||||||
/// <param name="redirectUri">Uri that was passed in the request sent for the authorization code.</param>
|
/// <param name="redirectUri">Uri that was passed in the request sent for the authorization code.</param>
|
||||||
/// <returns>OpenIdConnect message that has tokens inside it.</returns>
|
/// <returns>OpenIdConnect message that has tokens inside it.</returns>
|
||||||
protected virtual async Task<OpenIdConnectTokenEndpointResponse> RedeemAuthorizationCodeAsync(string authorizationCode, string redirectUri)
|
protected virtual async Task<OpenIdConnectMessage> RedeemAuthorizationCodeAsync(string authorizationCode, string redirectUri)
|
||||||
{
|
{
|
||||||
var openIdMessage = new OpenIdConnectMessage()
|
var openIdMessage = new OpenIdConnectMessage()
|
||||||
{
|
{
|
||||||
|
|
@ -635,7 +635,7 @@ namespace Microsoft.AspNet.Authentication.OpenIdConnect
|
||||||
responseMessage.EnsureSuccessStatusCode();
|
responseMessage.EnsureSuccessStatusCode();
|
||||||
var tokenResonse = await responseMessage.Content.ReadAsStringAsync();
|
var tokenResonse = await responseMessage.Content.ReadAsStringAsync();
|
||||||
var jsonTokenResponse = JObject.Parse(tokenResonse);
|
var jsonTokenResponse = JObject.Parse(tokenResonse);
|
||||||
return new OpenIdConnectTokenEndpointResponse(jsonTokenResponse);
|
return new OpenIdConnectMessage(jsonTokenResponse);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|
@ -984,7 +984,7 @@ namespace Microsoft.AspNet.Authentication.OpenIdConnect
|
||||||
return authorizationCodeReceivedContext;
|
return authorizationCodeReceivedContext;
|
||||||
}
|
}
|
||||||
|
|
||||||
private async Task<TokenResponseReceivedContext> RunTokenResponseReceivedEventAsync(OpenIdConnectMessage message, OpenIdConnectTokenEndpointResponse tokenEndpointResponse)
|
private async Task<TokenResponseReceivedContext> RunTokenResponseReceivedEventAsync(OpenIdConnectMessage message, OpenIdConnectMessage tokenEndpointResponse)
|
||||||
{
|
{
|
||||||
Logger.LogDebug(35, "Token response received.");
|
Logger.LogDebug(35, "Token response received.");
|
||||||
var tokenResponseReceivedContext = new TokenResponseReceivedContext(Context, Options)
|
var tokenResponseReceivedContext = new TokenResponseReceivedContext(Context, Options)
|
||||||
|
|
@ -1005,7 +1005,7 @@ namespace Microsoft.AspNet.Authentication.OpenIdConnect
|
||||||
return tokenResponseReceivedContext;
|
return tokenResponseReceivedContext;
|
||||||
}
|
}
|
||||||
|
|
||||||
private async Task<AuthenticationValidatedContext> RunAuthenticationValidatedEventAsync(OpenIdConnectMessage message, AuthenticationTicket ticket, OpenIdConnectTokenEndpointResponse tokenEndpointResponse)
|
private async Task<AuthenticationValidatedContext> RunAuthenticationValidatedEventAsync(OpenIdConnectMessage message, AuthenticationTicket ticket, OpenIdConnectMessage tokenEndpointResponse)
|
||||||
{
|
{
|
||||||
var authenticationValidatedContext = new AuthenticationValidatedContext(Context, Options)
|
var authenticationValidatedContext = new AuthenticationValidatedContext(Context, Options)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -1,36 +0,0 @@
|
||||||
// Copyright (c) .NET Foundation. All rights reserved.
|
|
||||||
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
|
||||||
|
|
||||||
using Microsoft.IdentityModel.Protocols.OpenIdConnect;
|
|
||||||
using Newtonsoft.Json.Linq;
|
|
||||||
|
|
||||||
namespace Microsoft.AspNet.Authentication.OpenIdConnect
|
|
||||||
{
|
|
||||||
/// <summary>
|
|
||||||
/// Class to store the response returned from token endpoint
|
|
||||||
/// </summary>
|
|
||||||
public class OpenIdConnectTokenEndpointResponse
|
|
||||||
{
|
|
||||||
public OpenIdConnectTokenEndpointResponse(JObject jsonResponse)
|
|
||||||
{
|
|
||||||
JsonResponse = jsonResponse;
|
|
||||||
ProtocolMessage = new OpenIdConnectMessage()
|
|
||||||
{
|
|
||||||
AccessToken = JsonResponse.Value<string>(OpenIdConnectParameterNames.AccessToken),
|
|
||||||
IdToken = JsonResponse.Value<string>(OpenIdConnectParameterNames.IdToken),
|
|
||||||
TokenType = JsonResponse.Value<string>(OpenIdConnectParameterNames.TokenType),
|
|
||||||
ExpiresIn = JsonResponse.Value<string>(OpenIdConnectParameterNames.ExpiresIn)
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// OpenIdConnect message that contains the id token and access tokens
|
|
||||||
/// </summary>
|
|
||||||
public OpenIdConnectMessage ProtocolMessage { get; set; }
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Json response returned from the token endpoint
|
|
||||||
/// </summary>
|
|
||||||
public JObject JsonResponse { get; set; }
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -19,11 +19,11 @@ namespace Microsoft.AspNet.Authentication.Tests.OpenIdConnect
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override Task<OpenIdConnectTokenEndpointResponse> RedeemAuthorizationCodeAsync(string authorizationCode, string redirectUri)
|
protected override Task<OpenIdConnectMessage> RedeemAuthorizationCodeAsync(string authorizationCode, string redirectUri)
|
||||||
{
|
{
|
||||||
var jsonResponse = new JObject();
|
var jsonResponse = new JObject();
|
||||||
jsonResponse.Add(OpenIdConnectParameterNames.IdToken, "test token");
|
jsonResponse.Add(OpenIdConnectParameterNames.IdToken, "test token");
|
||||||
return Task.FromResult(new OpenIdConnectTokenEndpointResponse(jsonResponse));
|
return Task.FromResult(new OpenIdConnectMessage(jsonResponse));
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override Task<AuthenticationTicket> GetUserInformationAsync(OpenIdConnectMessage message, JwtSecurityToken jwt, AuthenticationTicket ticket)
|
protected override Task<AuthenticationTicket> GetUserInformationAsync(OpenIdConnectMessage message, JwtSecurityToken jwt, AuthenticationTicket ticket)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue