public async Task <EndpointResult> Execute( AuthorizationParameter authorizationParameter, ClaimsPrincipal principal, Client client, string issuerName, CancellationToken cancellationToken) { var result = await _processAuthorizationRequest.Process( authorizationParameter, principal, client, issuerName, cancellationToken) .ConfigureAwait(false); if (result.Type == ActionResultType.BadRequest) { return(result); } // 1. Check the client is authorized to use the authorization_code flow. if (!client.CheckGrantTypes(GrantTypes.AuthorizationCode)) { _logger.LogError( string.Format( Strings.TheClientDoesntSupportTheGrantType, authorizationParameter.ClientId, AuthorizationCode)); return(EndpointResult.CreateBadRequestResult( new ErrorDetails { Title = ErrorCodes.InvalidRequest, Detail = string.Format( Strings.TheClientDoesntSupportTheGrantType, authorizationParameter.ClientId, AuthorizationCode), Status = HttpStatusCode.BadRequest })); } if (result.Type == ActionResultType.RedirectToCallBackUrl) { result = await _generateAuthorizationResponse.Generate( result, authorizationParameter, principal, client, issuerName, CancellationToken.None) .ConfigureAwait(false); } return(result); }
public async Task <EndpointResult> Execute( AuthorizationParameter authorizationParameter, IPrincipal principal, Client client, string issuerName, CancellationToken cancellationToken) { if (string.IsNullOrWhiteSpace(authorizationParameter.Nonce)) { _logger.LogError( string.Format( Strings.MissingParameter, CoreConstants.StandardAuthorizationRequestParameterNames.NonceName)); return(EndpointResult.CreateBadRequestResult( new ErrorDetails { Title = ErrorCodes.InvalidRequest, Detail = string.Format( Strings.MissingParameter, CoreConstants.StandardAuthorizationRequestParameterNames.NonceName), Status = HttpStatusCode.BadRequest })); } if (!client.CheckGrantTypes(GrantTypes.Implicit)) { _logger.LogError( string.Format( Strings.TheClientDoesntSupportTheGrantType, authorizationParameter.ClientId, "implicit")); return(EndpointResult.CreateBadRequestResult( new ErrorDetails { Title = ErrorCodes.InvalidRequest, Detail = string.Format( Strings.TheClientDoesntSupportTheGrantType, authorizationParameter.ClientId, "implicit"), Status = HttpStatusCode.BadRequest })); } var claimsPrincipal = (ClaimsPrincipal)principal; var result = await _processAuthorizationRequest.Process( authorizationParameter, claimsPrincipal, client, issuerName, cancellationToken) .ConfigureAwait(false); if (result.Type == ActionResultType.RedirectToCallBackUrl) { result = await _generateAuthorizationResponse.Generate( result, authorizationParameter, claimsPrincipal, client, issuerName, cancellationToken) .ConfigureAwait(false); } return(result); }