mirror of
https://github.com/DuendeSoftware/products
synced 2026-05-24 01:18:22 +00:00
Remove _ct field from TokenRequestValidator — thread ct parameter through all private methods and update test call sites
This commit is contained in:
parent
90cf6592af
commit
c295513d79
11 changed files with 149 additions and 151 deletions
|
|
@ -43,9 +43,7 @@ internal class TokenRequestValidator : ITokenRequestValidator
|
|||
private readonly ResourceLoadedTracker _resourceLoadedTracker;
|
||||
private readonly IMtlsEndpointGenerator _mtlsEndpointGenerator;
|
||||
private readonly ILogger _logger;
|
||||
|
||||
private ValidatedTokenRequest _validatedRequest;
|
||||
private Ct _ct;
|
||||
|
||||
public TokenRequestValidator(
|
||||
IdentityServerOptions options,
|
||||
|
|
@ -95,11 +93,12 @@ internal class TokenRequestValidator : ITokenRequestValidator
|
|||
|
||||
// only here for legacy unit tests
|
||||
// maybe at some point we clean up the unit tests?
|
||||
internal Task<TokenRequestValidationResult> ValidateRequestAsync(NameValueCollection parameters, ClientSecretValidationResult clientValidationResult) => ValidateRequestAsync(new TokenRequestValidationContext
|
||||
{
|
||||
RequestParameters = parameters,
|
||||
ClientValidationResult = clientValidationResult
|
||||
}, CancellationToken.None);
|
||||
internal Task<TokenRequestValidationResult> ValidateRequestAsync(NameValueCollection parameters, ClientSecretValidationResult clientValidationResult, Ct ct) =>
|
||||
ValidateRequestAsync(new TokenRequestValidationContext
|
||||
{
|
||||
RequestParameters = parameters,
|
||||
ClientValidationResult = clientValidationResult
|
||||
}, ct);
|
||||
|
||||
/// <inheritdoc/>
|
||||
public async Task<TokenRequestValidationResult> ValidateRequestAsync(TokenRequestValidationContext context, Ct ct)
|
||||
|
|
@ -110,13 +109,12 @@ internal class TokenRequestValidator : ITokenRequestValidator
|
|||
|
||||
ArgumentNullException.ThrowIfNull(context);
|
||||
|
||||
_ct = ct;
|
||||
var parameters = context.RequestParameters;
|
||||
var clientValidationResult = context.ClientValidationResult;
|
||||
|
||||
_validatedRequest = new ValidatedTokenRequest
|
||||
{
|
||||
IssuerName = await _issuerNameService.GetCurrentAsync(_ct),
|
||||
IssuerName = await _issuerNameService.GetCurrentAsync(ct),
|
||||
Raw = parameters ?? throw new ArgumentNullException(nameof(context.RequestParameters)),
|
||||
Options = _options
|
||||
};
|
||||
|
|
@ -194,7 +192,7 @@ internal class TokenRequestValidator : ITokenRequestValidator
|
|||
//////////////////////////////////////////////////////////
|
||||
// proof token validation
|
||||
//////////////////////////////////////////////////////////
|
||||
var proofResult = await ValidateProofToken(context);
|
||||
var proofResult = await ValidateProofToken(context, ct);
|
||||
if (proofResult.IsError)
|
||||
{
|
||||
return proofResult;
|
||||
|
|
@ -207,20 +205,20 @@ internal class TokenRequestValidator : ITokenRequestValidator
|
|||
return grantType switch
|
||||
{
|
||||
OidcConstants.GrantTypes.AuthorizationCode => await RunValidationAsync(
|
||||
ValidateAuthorizationCodeRequestAsync, parameters),
|
||||
ValidateAuthorizationCodeRequestAsync, parameters, ct),
|
||||
OidcConstants.GrantTypes.ClientCredentials => await RunValidationAsync(
|
||||
ValidateClientCredentialsRequestAsync, parameters),
|
||||
ValidateClientCredentialsRequestAsync, parameters, ct),
|
||||
OidcConstants.GrantTypes.Password => await RunValidationAsync(ValidateResourceOwnerCredentialRequestAsync,
|
||||
parameters),
|
||||
parameters, ct),
|
||||
OidcConstants.GrantTypes.RefreshToken => await RunValidationAsync(ValidateRefreshTokenRequestAsync,
|
||||
parameters),
|
||||
OidcConstants.GrantTypes.DeviceCode => await RunValidationAsync(ValidateDeviceCodeRequestAsync, parameters),
|
||||
OidcConstants.GrantTypes.Ciba => await RunValidationAsync(ValidateCibaRequestRequestAsync, parameters),
|
||||
_ => await RunValidationAsync(ValidateExtensionGrantRequestAsync, parameters)
|
||||
parameters, ct),
|
||||
OidcConstants.GrantTypes.DeviceCode => await RunValidationAsync(ValidateDeviceCodeRequestAsync, parameters, ct),
|
||||
OidcConstants.GrantTypes.Ciba => await RunValidationAsync(ValidateCibaRequestRequestAsync, parameters, ct),
|
||||
_ => await RunValidationAsync(ValidateExtensionGrantRequestAsync, parameters, ct)
|
||||
};
|
||||
}
|
||||
|
||||
private async Task<TokenRequestValidationResult> ValidateProofToken(TokenRequestValidationContext context)
|
||||
private async Task<TokenRequestValidationResult> ValidateProofToken(TokenRequestValidationContext context, Ct ct)
|
||||
{
|
||||
|
||||
// mTLS client cert processing
|
||||
|
|
@ -263,7 +261,7 @@ internal class TokenRequestValidator : ITokenRequestValidator
|
|||
Url = tokenUrl,
|
||||
Method = "POST",
|
||||
};
|
||||
var dpopResult = await _dPoPProofValidator.ValidateAsync(dpopContext, _ct);
|
||||
var dpopResult = await _dPoPProofValidator.ValidateAsync(dpopContext, ct);
|
||||
if (dpopResult.IsError)
|
||||
{
|
||||
LogError(dpopResult.ErrorDescription ?? dpopResult.Error);
|
||||
|
|
@ -285,10 +283,10 @@ internal class TokenRequestValidator : ITokenRequestValidator
|
|||
return Valid();
|
||||
}
|
||||
|
||||
private async Task<TokenRequestValidationResult> RunValidationAsync(Func<NameValueCollection, Task<TokenRequestValidationResult>> validationFunc, NameValueCollection parameters)
|
||||
private async Task<TokenRequestValidationResult> RunValidationAsync(Func<NameValueCollection, Ct, Task<TokenRequestValidationResult>> validationFunc, NameValueCollection parameters, Ct ct)
|
||||
{
|
||||
// run standard validation
|
||||
var result = await validationFunc(parameters);
|
||||
var result = await validationFunc(parameters, ct);
|
||||
if (result.IsError)
|
||||
{
|
||||
return result;
|
||||
|
|
@ -298,7 +296,7 @@ internal class TokenRequestValidator : ITokenRequestValidator
|
|||
_logger.LogTrace("Calling into custom request validator: {type}", _customRequestValidator.GetType().FullName);
|
||||
|
||||
var customValidationContext = new CustomTokenRequestValidationContext { Result = result };
|
||||
await _customRequestValidator.ValidateAsync(customValidationContext, _ct);
|
||||
await _customRequestValidator.ValidateAsync(customValidationContext, ct);
|
||||
|
||||
if (customValidationContext.Result.IsError)
|
||||
{
|
||||
|
|
@ -325,7 +323,7 @@ internal class TokenRequestValidator : ITokenRequestValidator
|
|||
return customValidationContext.Result;
|
||||
}
|
||||
|
||||
private async Task<TokenRequestValidationResult> ValidateAuthorizationCodeRequestAsync(NameValueCollection parameters)
|
||||
private async Task<TokenRequestValidationResult> ValidateAuthorizationCodeRequestAsync(NameValueCollection parameters, Ct ct)
|
||||
{
|
||||
_logger.LogDebug("Start validation of authorization code token request");
|
||||
|
||||
|
|
@ -357,7 +355,7 @@ internal class TokenRequestValidator : ITokenRequestValidator
|
|||
|
||||
_validatedRequest.AuthorizationCodeHandle = code;
|
||||
|
||||
var authZcode = await _authorizationCodeStore.GetAuthorizationCodeAsync(code, _ct);
|
||||
var authZcode = await _authorizationCodeStore.GetAuthorizationCodeAsync(code, ct);
|
||||
if (authZcode == null)
|
||||
{
|
||||
LogError("Invalid authorization code", new { code });
|
||||
|
|
@ -393,7 +391,7 @@ internal class TokenRequestValidator : ITokenRequestValidator
|
|||
|
||||
// remove code from store
|
||||
// todo: set to consumed in the future?
|
||||
await _authorizationCodeStore.RemoveAuthorizationCodeAsync(code, _ct);
|
||||
await _authorizationCodeStore.RemoveAuthorizationCodeAsync(code, ct);
|
||||
|
||||
if (authZcode.CreationTime.HasExceeded(authZcode.Lifetime, _timeProvider.GetUtcNow().UtcDateTime))
|
||||
{
|
||||
|
|
@ -465,7 +463,7 @@ internal class TokenRequestValidator : ITokenRequestValidator
|
|||
Client = _validatedRequest.Client,
|
||||
Scopes = _validatedRequest.AuthorizationCode.RequestedScopes,
|
||||
ResourceIndicators = _validatedRequest.AuthorizationCode.RequestedResourceIndicators,
|
||||
}, _ct);
|
||||
}, ct);
|
||||
|
||||
if (!validatedResources.Succeeded)
|
||||
{
|
||||
|
|
@ -513,7 +511,7 @@ internal class TokenRequestValidator : ITokenRequestValidator
|
|||
// make sure user is enabled
|
||||
/////////////////////////////////////////////
|
||||
var isActiveCtx = new IsActiveContext(_validatedRequest.AuthorizationCode.Subject, _validatedRequest.Client, IdentityServerConstants.ProfileIsActiveCallers.AuthorizationCodeValidation);
|
||||
await _profile.IsActiveAsync(isActiveCtx, _ct);
|
||||
await _profile.IsActiveAsync(isActiveCtx, ct);
|
||||
|
||||
if (isActiveCtx.IsActive == false)
|
||||
{
|
||||
|
|
@ -526,7 +524,7 @@ internal class TokenRequestValidator : ITokenRequestValidator
|
|||
return Valid();
|
||||
}
|
||||
|
||||
private async Task<TokenRequestValidationResult> ValidateClientCredentialsRequestAsync(NameValueCollection parameters)
|
||||
private async Task<TokenRequestValidationResult> ValidateClientCredentialsRequestAsync(NameValueCollection parameters, Ct ct)
|
||||
{
|
||||
_logger.LogDebug("Start client credentials token request validation");
|
||||
|
||||
|
|
@ -542,7 +540,7 @@ internal class TokenRequestValidator : ITokenRequestValidator
|
|||
/////////////////////////////////////////////
|
||||
// check if client is allowed to request scopes
|
||||
/////////////////////////////////////////////
|
||||
var scopeError = await ValidateRequestedScopesAndResourcesAsync(parameters, ignoreImplicitIdentityScopes: true, ignoreImplicitOfflineAccess: true);
|
||||
var scopeError = await ValidateRequestedScopesAndResourcesAsync(parameters, ct, ignoreImplicitIdentityScopes: true, ignoreImplicitOfflineAccess: true);
|
||||
if (scopeError != null)
|
||||
{
|
||||
return Invalid(scopeError);
|
||||
|
|
@ -564,7 +562,7 @@ internal class TokenRequestValidator : ITokenRequestValidator
|
|||
return Valid();
|
||||
}
|
||||
|
||||
private async Task<TokenRequestValidationResult> ValidateResourceOwnerCredentialRequestAsync(NameValueCollection parameters)
|
||||
private async Task<TokenRequestValidationResult> ValidateResourceOwnerCredentialRequestAsync(NameValueCollection parameters, Ct ct)
|
||||
{
|
||||
_logger.LogDebug("Start resource owner password token request validation");
|
||||
|
||||
|
|
@ -580,7 +578,7 @@ internal class TokenRequestValidator : ITokenRequestValidator
|
|||
/////////////////////////////////////////////
|
||||
// check if client is allowed to request scopes
|
||||
/////////////////////////////////////////////
|
||||
var scopeError = await ValidateRequestedScopesAndResourcesAsync(parameters);
|
||||
var scopeError = await ValidateRequestedScopesAndResourcesAsync(parameters, ct);
|
||||
if (scopeError != null)
|
||||
{
|
||||
return Invalid(scopeError);
|
||||
|
|
@ -622,7 +620,7 @@ internal class TokenRequestValidator : ITokenRequestValidator
|
|||
Password = password,
|
||||
Request = _validatedRequest
|
||||
};
|
||||
await _resourceOwnerValidator.ValidateAsync(resourceOwnerContext, _ct);
|
||||
await _resourceOwnerValidator.ValidateAsync(resourceOwnerContext, ct);
|
||||
|
||||
if (resourceOwnerContext.Result.IsError)
|
||||
{
|
||||
|
|
@ -632,7 +630,7 @@ internal class TokenRequestValidator : ITokenRequestValidator
|
|||
if (resourceOwnerContext.Result.Error == OidcConstants.TokenErrors.UnsupportedGrantType)
|
||||
{
|
||||
LogError("Resource owner password credential grant type not supported");
|
||||
await RaiseFailedResourceOwnerAuthenticationEventAsync(userName, "password grant type not supported", resourceOwnerContext.Request.Client.ClientId);
|
||||
await RaiseFailedResourceOwnerAuthenticationEventAsync(userName, "password grant type not supported", resourceOwnerContext.Request.Client.ClientId, ct);
|
||||
|
||||
return Invalid(OidcConstants.TokenErrors.UnsupportedGrantType, customResponse: resourceOwnerContext.Result.CustomResponse);
|
||||
}
|
||||
|
|
@ -645,7 +643,7 @@ internal class TokenRequestValidator : ITokenRequestValidator
|
|||
}
|
||||
|
||||
LogInformation("User authentication failed: ", errorDescription ?? resourceOwnerContext.Result.Error);
|
||||
await RaiseFailedResourceOwnerAuthenticationEventAsync(userName, errorDescription, resourceOwnerContext.Request.Client.ClientId);
|
||||
await RaiseFailedResourceOwnerAuthenticationEventAsync(userName, errorDescription, resourceOwnerContext.Request.Client.ClientId, ct);
|
||||
|
||||
return Invalid(resourceOwnerContext.Result.Error, errorDescription, resourceOwnerContext.Result.CustomResponse);
|
||||
}
|
||||
|
|
@ -654,7 +652,7 @@ internal class TokenRequestValidator : ITokenRequestValidator
|
|||
{
|
||||
var error = "User authentication failed: no principal returned";
|
||||
LogError(error);
|
||||
await RaiseFailedResourceOwnerAuthenticationEventAsync(userName, error, resourceOwnerContext.Request.Client.ClientId);
|
||||
await RaiseFailedResourceOwnerAuthenticationEventAsync(userName, error, resourceOwnerContext.Request.Client.ClientId, ct);
|
||||
|
||||
return Invalid(OidcConstants.TokenErrors.InvalidGrant);
|
||||
}
|
||||
|
|
@ -663,12 +661,12 @@ internal class TokenRequestValidator : ITokenRequestValidator
|
|||
// make sure user is enabled
|
||||
/////////////////////////////////////////////
|
||||
var isActiveCtx = new IsActiveContext(resourceOwnerContext.Result.Subject, _validatedRequest.Client, IdentityServerConstants.ProfileIsActiveCallers.ResourceOwnerValidation);
|
||||
await _profile.IsActiveAsync(isActiveCtx, _ct);
|
||||
await _profile.IsActiveAsync(isActiveCtx, ct);
|
||||
|
||||
if (isActiveCtx.IsActive == false)
|
||||
{
|
||||
LogError("User has been disabled", new { subjectId = resourceOwnerContext.Result.Subject.GetSubjectId() });
|
||||
await RaiseFailedResourceOwnerAuthenticationEventAsync(userName, "user is inactive", resourceOwnerContext.Request.Client.ClientId);
|
||||
await RaiseFailedResourceOwnerAuthenticationEventAsync(userName, "user is inactive", resourceOwnerContext.Request.Client.ClientId, ct);
|
||||
|
||||
return Invalid(OidcConstants.TokenErrors.InvalidGrant);
|
||||
}
|
||||
|
|
@ -676,12 +674,12 @@ internal class TokenRequestValidator : ITokenRequestValidator
|
|||
_validatedRequest.UserName = userName;
|
||||
_validatedRequest.Subject = resourceOwnerContext.Result.Subject;
|
||||
|
||||
await RaiseSuccessfulResourceOwnerAuthenticationEventAsync(userName, resourceOwnerContext.Result.Subject.GetSubjectId(), resourceOwnerContext.Request.Client.ClientId);
|
||||
await RaiseSuccessfulResourceOwnerAuthenticationEventAsync(userName, resourceOwnerContext.Result.Subject.GetSubjectId(), resourceOwnerContext.Request.Client.ClientId, ct);
|
||||
_logger.LogDebug("Resource owner password token request validation success.");
|
||||
return Valid(resourceOwnerContext.Result.CustomResponse);
|
||||
}
|
||||
|
||||
private async Task<TokenRequestValidationResult> ValidateRefreshTokenRequestAsync(NameValueCollection parameters)
|
||||
private async Task<TokenRequestValidationResult> ValidateRefreshTokenRequestAsync(NameValueCollection parameters, Ct ct)
|
||||
{
|
||||
_logger.LogDebug("Start validation of refresh token request");
|
||||
|
||||
|
|
@ -698,7 +696,7 @@ internal class TokenRequestValidator : ITokenRequestValidator
|
|||
return Invalid(OidcConstants.TokenErrors.InvalidGrant);
|
||||
}
|
||||
|
||||
var result = await _refreshTokenService.ValidateRefreshTokenAsync(refreshTokenHandle, _validatedRequest.Client, _ct);
|
||||
var result = await _refreshTokenService.ValidateRefreshTokenAsync(refreshTokenHandle, _validatedRequest.Client, ct);
|
||||
|
||||
if (result.IsError)
|
||||
{
|
||||
|
|
@ -813,7 +811,7 @@ internal class TokenRequestValidator : ITokenRequestValidator
|
|||
Client = _validatedRequest.Client,
|
||||
Scopes = _validatedRequest.RefreshToken.AuthorizedScopes,
|
||||
ResourceIndicators = resourceIndicators,
|
||||
}, _ct);
|
||||
}, ct);
|
||||
|
||||
if (!validatedResources.Succeeded)
|
||||
{
|
||||
|
|
@ -838,7 +836,7 @@ internal class TokenRequestValidator : ITokenRequestValidator
|
|||
return Valid();
|
||||
}
|
||||
|
||||
private async Task<TokenRequestValidationResult> ValidateDeviceCodeRequestAsync(NameValueCollection parameters)
|
||||
private async Task<TokenRequestValidationResult> ValidateDeviceCodeRequestAsync(NameValueCollection parameters, Ct ct)
|
||||
{
|
||||
_logger.LogDebug("Start validation of device code request");
|
||||
|
||||
|
|
@ -880,7 +878,7 @@ internal class TokenRequestValidator : ITokenRequestValidator
|
|||
// validate device code
|
||||
/////////////////////////////////////////////
|
||||
var deviceCodeContext = new DeviceCodeValidationContext { DeviceCode = deviceCode, Request = _validatedRequest };
|
||||
await _deviceCodeValidator.ValidateAsync(deviceCodeContext, _ct);
|
||||
await _deviceCodeValidator.ValidateAsync(deviceCodeContext, ct);
|
||||
|
||||
if (deviceCodeContext.Result.IsError)
|
||||
{
|
||||
|
|
@ -895,7 +893,7 @@ internal class TokenRequestValidator : ITokenRequestValidator
|
|||
Client = _validatedRequest.Client,
|
||||
Scopes = _validatedRequest.DeviceCode.AuthorizedScopes,
|
||||
ResourceIndicators = null // not supported for device grant
|
||||
}, _ct);
|
||||
}, ct);
|
||||
|
||||
if (!validatedResources.Succeeded)
|
||||
{
|
||||
|
|
@ -919,7 +917,7 @@ internal class TokenRequestValidator : ITokenRequestValidator
|
|||
return Valid();
|
||||
}
|
||||
|
||||
private async Task<TokenRequestValidationResult> ValidateCibaRequestRequestAsync(NameValueCollection parameters)
|
||||
private async Task<TokenRequestValidationResult> ValidateCibaRequestRequestAsync(NameValueCollection parameters, Ct ct)
|
||||
{
|
||||
_logger.LogDebug("Start validation of CIBA request");
|
||||
|
||||
|
|
@ -959,7 +957,7 @@ internal class TokenRequestValidator : ITokenRequestValidator
|
|||
AuthenticationRequestId = authRequestId,
|
||||
Request = _validatedRequest
|
||||
};
|
||||
await _backchannelAuthenticationRequestIdValidator.ValidateAsync(validationContext, _ct);
|
||||
await _backchannelAuthenticationRequestIdValidator.ValidateAsync(validationContext, ct);
|
||||
|
||||
if (validationContext.Result.IsError)
|
||||
{
|
||||
|
|
@ -984,7 +982,7 @@ internal class TokenRequestValidator : ITokenRequestValidator
|
|||
Client = _validatedRequest.Client,
|
||||
Scopes = _validatedRequest.BackChannelAuthenticationRequest.AuthorizedScopes,
|
||||
ResourceIndicators = _validatedRequest.BackChannelAuthenticationRequest.RequestedResourceIndicators,
|
||||
}, _ct);
|
||||
}, ct);
|
||||
|
||||
if (!validatedResources.Succeeded)
|
||||
{
|
||||
|
|
@ -1008,7 +1006,7 @@ internal class TokenRequestValidator : ITokenRequestValidator
|
|||
return Valid();
|
||||
}
|
||||
|
||||
private async Task<TokenRequestValidationResult> ValidateExtensionGrantRequestAsync(NameValueCollection parameters)
|
||||
private async Task<TokenRequestValidationResult> ValidateExtensionGrantRequestAsync(NameValueCollection parameters, Ct ct)
|
||||
{
|
||||
_logger.LogDebug("Start validation of custom grant token request");
|
||||
|
||||
|
|
@ -1033,7 +1031,7 @@ internal class TokenRequestValidator : ITokenRequestValidator
|
|||
/////////////////////////////////////////////
|
||||
// check if client is allowed to request scopes
|
||||
/////////////////////////////////////////////
|
||||
var scopeError = await ValidateRequestedScopesAndResourcesAsync(parameters);
|
||||
var scopeError = await ValidateRequestedScopesAndResourcesAsync(parameters, ct);
|
||||
if (scopeError != null)
|
||||
{
|
||||
return Invalid(scopeError);
|
||||
|
|
@ -1042,7 +1040,7 @@ internal class TokenRequestValidator : ITokenRequestValidator
|
|||
/////////////////////////////////////////////
|
||||
// validate custom grant type
|
||||
/////////////////////////////////////////////
|
||||
var result = await _extensionGrantValidator.ValidateAsync(_validatedRequest, _ct);
|
||||
var result = await _extensionGrantValidator.ValidateAsync(_validatedRequest, ct);
|
||||
|
||||
if (result == null)
|
||||
{
|
||||
|
|
@ -1074,7 +1072,7 @@ internal class TokenRequestValidator : ITokenRequestValidator
|
|||
_validatedRequest.Client,
|
||||
IdentityServerConstants.ProfileIsActiveCallers.ExtensionGrantValidation);
|
||||
|
||||
await _profile.IsActiveAsync(isActiveCtx, _ct);
|
||||
await _profile.IsActiveAsync(isActiveCtx, ct);
|
||||
|
||||
if (isActiveCtx.IsActive == false)
|
||||
{
|
||||
|
|
@ -1093,7 +1091,7 @@ internal class TokenRequestValidator : ITokenRequestValidator
|
|||
|
||||
// todo: do we want to rework the semantics of these ignore params?
|
||||
// also seems like other workflows other than CC clients can omit scopes?
|
||||
private async Task<string> ValidateRequestedScopesAndResourcesAsync(NameValueCollection parameters, bool ignoreImplicitIdentityScopes = false, bool ignoreImplicitOfflineAccess = false)
|
||||
private async Task<string> ValidateRequestedScopesAndResourcesAsync(NameValueCollection parameters, Ct ct, bool ignoreImplicitIdentityScopes = false, bool ignoreImplicitOfflineAccess = false)
|
||||
{
|
||||
var scopes = parameters.Get(OidcConstants.TokenRequest.Scope);
|
||||
if (scopes.IsMissing())
|
||||
|
|
@ -1106,12 +1104,12 @@ internal class TokenRequestValidator : ITokenRequestValidator
|
|||
var clientAllowedScopes = new List<string>();
|
||||
if (!ignoreImplicitIdentityScopes)
|
||||
{
|
||||
var resources = await _resourceStore.FindResourcesByScopeAsync(_validatedRequest.Client.AllowedScopes, _ct);
|
||||
var resources = await _resourceStore.FindResourcesByScopeAsync(_validatedRequest.Client.AllowedScopes, ct);
|
||||
clientAllowedScopes.AddRange(resources.ToScopeNames().Where(x => _validatedRequest.Client.AllowedScopes.Contains(x)));
|
||||
}
|
||||
else
|
||||
{
|
||||
var apiScopes = await _resourceStore.FindApiScopesByNameAsync(_validatedRequest.Client.AllowedScopes, _ct);
|
||||
var apiScopes = await _resourceStore.FindApiScopesByNameAsync(_validatedRequest.Client.AllowedScopes, ct);
|
||||
clientAllowedScopes.AddRange(apiScopes.Select(x => x.Name));
|
||||
}
|
||||
|
||||
|
|
@ -1157,7 +1155,7 @@ internal class TokenRequestValidator : ITokenRequestValidator
|
|||
Client = _validatedRequest.Client,
|
||||
Scopes = requestedScopes,
|
||||
ResourceIndicators = resourceIndicators,
|
||||
}, _ct);
|
||||
}, ct);
|
||||
|
||||
if (!resourceValidationResult.Succeeded)
|
||||
{
|
||||
|
|
@ -1280,15 +1278,15 @@ internal class TokenRequestValidator : ITokenRequestValidator
|
|||
|
||||
private void LogSuccess() => LogWithRequestDetails(LogLevel.Information, "Token request validation success");
|
||||
|
||||
private Task RaiseSuccessfulResourceOwnerAuthenticationEventAsync(string userName, string subjectId, string clientId)
|
||||
private Task RaiseSuccessfulResourceOwnerAuthenticationEventAsync(string userName, string subjectId, string clientId, Ct ct)
|
||||
{
|
||||
Telemetry.Metrics.ResourceOwnerAuthentication(clientId);
|
||||
return _events.RaiseAsync(new UserLoginSuccessEvent(userName, subjectId, null, interactive: false, clientId), _ct);
|
||||
return _events.RaiseAsync(new UserLoginSuccessEvent(userName, subjectId, null, interactive: false, clientId), ct);
|
||||
}
|
||||
|
||||
private Task RaiseFailedResourceOwnerAuthenticationEventAsync(string userName, string error, string clientId)
|
||||
private Task RaiseFailedResourceOwnerAuthenticationEventAsync(string userName, string error, string clientId, Ct ct)
|
||||
{
|
||||
Telemetry.Metrics.ResourceOwnerAuthenticationFailure(clientId, error);
|
||||
return _events.RaiseAsync(new UserLoginFailureEvent(userName, error, interactive: false, clientId: clientId), _ct);
|
||||
return _events.RaiseAsync(new UserLoginFailureEvent(userName, error, interactive: false, clientId: clientId), ct);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@ public class TokenRequestValidation_ClientCredentials_Invalid
|
|||
parameters.Add(OidcConstants.TokenRequest.GrantType, OidcConstants.GrantTypes.ClientCredentials);
|
||||
parameters.Add(OidcConstants.TokenRequest.Scope, "resource");
|
||||
|
||||
var result = await validator.ValidateRequestAsync(parameters, client.ToValidationResult());
|
||||
var result = await validator.ValidateRequestAsync(parameters, client.ToValidationResult(), _ct);
|
||||
|
||||
result.IsError.ShouldBeTrue();
|
||||
result.Error.ShouldBe(OidcConstants.TokenErrors.UnauthorizedClient);
|
||||
|
|
@ -45,7 +45,7 @@ public class TokenRequestValidation_ClientCredentials_Invalid
|
|||
{ OidcConstants.TokenRequest.GrantType, OidcConstants.GrantTypes.ClientCredentials }
|
||||
};
|
||||
|
||||
var result = await validator.ValidateRequestAsync(parameters, client.ToValidationResult());
|
||||
var result = await validator.ValidateRequestAsync(parameters, client.ToValidationResult(), _ct);
|
||||
|
||||
result.IsError.ShouldBeFalse();
|
||||
result.ValidatedRequest.ValidatedResources.Resources.ApiResources.Select(x => x.Name).ShouldBe(["api", "urn:api1", "urn:api2", "urn:api3"]);
|
||||
|
|
@ -63,7 +63,7 @@ public class TokenRequestValidation_ClientCredentials_Invalid
|
|||
parameters.Add(OidcConstants.TokenRequest.GrantType, OidcConstants.GrantTypes.ClientCredentials);
|
||||
parameters.Add(OidcConstants.TokenRequest.Scope, "unknown");
|
||||
|
||||
var result = await validator.ValidateRequestAsync(parameters, client.ToValidationResult());
|
||||
var result = await validator.ValidateRequestAsync(parameters, client.ToValidationResult(), _ct);
|
||||
|
||||
result.IsError.ShouldBeTrue();
|
||||
result.Error.ShouldBe(OidcConstants.TokenErrors.InvalidScope);
|
||||
|
|
@ -80,7 +80,7 @@ public class TokenRequestValidation_ClientCredentials_Invalid
|
|||
parameters.Add(OidcConstants.TokenRequest.GrantType, OidcConstants.GrantTypes.ClientCredentials);
|
||||
parameters.Add(OidcConstants.TokenRequest.Scope, "resource unknown");
|
||||
|
||||
var result = await validator.ValidateRequestAsync(parameters, client.ToValidationResult());
|
||||
var result = await validator.ValidateRequestAsync(parameters, client.ToValidationResult(), _ct);
|
||||
|
||||
result.IsError.ShouldBeTrue();
|
||||
result.Error.ShouldBe(OidcConstants.TokenErrors.InvalidScope);
|
||||
|
|
@ -97,7 +97,7 @@ public class TokenRequestValidation_ClientCredentials_Invalid
|
|||
parameters.Add(OidcConstants.TokenRequest.GrantType, OidcConstants.GrantTypes.ClientCredentials);
|
||||
parameters.Add(OidcConstants.TokenRequest.Scope, "resource2");
|
||||
|
||||
var result = await validator.ValidateRequestAsync(parameters, client.ToValidationResult());
|
||||
var result = await validator.ValidateRequestAsync(parameters, client.ToValidationResult(), _ct);
|
||||
|
||||
result.IsError.ShouldBeTrue();
|
||||
result.Error.ShouldBe(OidcConstants.TokenErrors.InvalidScope);
|
||||
|
|
@ -114,7 +114,7 @@ public class TokenRequestValidation_ClientCredentials_Invalid
|
|||
parameters.Add(OidcConstants.TokenRequest.GrantType, OidcConstants.GrantTypes.ClientCredentials);
|
||||
parameters.Add(OidcConstants.TokenRequest.Scope, "resource resource2");
|
||||
|
||||
var result = await validator.ValidateRequestAsync(parameters, client.ToValidationResult());
|
||||
var result = await validator.ValidateRequestAsync(parameters, client.ToValidationResult(), _ct);
|
||||
|
||||
result.IsError.ShouldBeTrue();
|
||||
result.Error.ShouldBe(OidcConstants.TokenErrors.InvalidScope);
|
||||
|
|
@ -133,7 +133,7 @@ public class TokenRequestValidation_ClientCredentials_Invalid
|
|||
{ OidcConstants.TokenRequest.Scope, "openid" }
|
||||
};
|
||||
|
||||
var result = await validator.ValidateRequestAsync(parameters, client.ToValidationResult());
|
||||
var result = await validator.ValidateRequestAsync(parameters, client.ToValidationResult(), _ct);
|
||||
|
||||
result.IsError.ShouldBeTrue();
|
||||
result.Error.ShouldBe(OidcConstants.TokenErrors.InvalidScope);
|
||||
|
|
@ -150,7 +150,7 @@ public class TokenRequestValidation_ClientCredentials_Invalid
|
|||
parameters.Add(OidcConstants.TokenRequest.GrantType, OidcConstants.GrantTypes.ClientCredentials);
|
||||
parameters.Add(OidcConstants.TokenRequest.Scope, "resource offline_access");
|
||||
|
||||
var result = await validator.ValidateRequestAsync(parameters, client.ToValidationResult());
|
||||
var result = await validator.ValidateRequestAsync(parameters, client.ToValidationResult(), _ct);
|
||||
|
||||
result.IsError.ShouldBeTrue();
|
||||
result.Error.ShouldBe(OidcConstants.TokenErrors.InvalidScope);
|
||||
|
|
@ -170,7 +170,7 @@ public class TokenRequestValidation_ClientCredentials_Invalid
|
|||
|
||||
{
|
||||
parameters[OidcConstants.TokenRequest.Resource] = "urn:api1" + new string('x', 512);
|
||||
var result = await validator.ValidateRequestAsync(parameters, client.ToValidationResult());
|
||||
var result = await validator.ValidateRequestAsync(parameters, client.ToValidationResult(), _ct);
|
||||
|
||||
result.IsError.ShouldBeTrue();
|
||||
result.Error.ShouldBe(OidcConstants.TokenErrors.InvalidTarget);
|
||||
|
|
@ -178,7 +178,7 @@ public class TokenRequestValidation_ClientCredentials_Invalid
|
|||
{
|
||||
parameters[OidcConstants.TokenRequest.Resource] = "api";
|
||||
|
||||
var result = await validator.ValidateRequestAsync(parameters, client.ToValidationResult());
|
||||
var result = await validator.ValidateRequestAsync(parameters, client.ToValidationResult(), _ct);
|
||||
result.IsError.ShouldBeTrue();
|
||||
result.Error.ShouldBe("invalid_target");
|
||||
}
|
||||
|
|
@ -186,7 +186,7 @@ public class TokenRequestValidation_ClientCredentials_Invalid
|
|||
parameters[OidcConstants.TokenRequest.Resource] = "urn:api1";
|
||||
parameters.Add(OidcConstants.TokenRequest.Resource, "urn:api2");
|
||||
|
||||
var result = await validator.ValidateRequestAsync(parameters, client.ToValidationResult());
|
||||
var result = await validator.ValidateRequestAsync(parameters, client.ToValidationResult(), _ct);
|
||||
result.IsError.ShouldBeTrue();
|
||||
result.Error.ShouldBe("invalid_target");
|
||||
}
|
||||
|
|
|
|||
|
|
@ -49,7 +49,7 @@ public class TokenRequestValidation_Code_Invalid
|
|||
parameters.Add(OidcConstants.TokenRequest.GrantType, OidcConstants.GrantTypes.AuthorizationCode);
|
||||
parameters.Add(OidcConstants.TokenRequest.RedirectUri, "https://server/cb");
|
||||
|
||||
var result = await validator.ValidateRequestAsync(parameters, client.ToValidationResult());
|
||||
var result = await validator.ValidateRequestAsync(parameters, client.ToValidationResult(), _ct);
|
||||
|
||||
result.IsError.ShouldBeTrue();
|
||||
result.Error.ShouldBe(OidcConstants.TokenErrors.InvalidGrant);
|
||||
|
|
@ -82,7 +82,7 @@ public class TokenRequestValidation_Code_Invalid
|
|||
parameters.Add(OidcConstants.TokenRequest.Code, "invalid");
|
||||
parameters.Add(OidcConstants.TokenRequest.RedirectUri, "https://server/cb");
|
||||
|
||||
var result = await validator.ValidateRequestAsync(parameters, client.ToValidationResult());
|
||||
var result = await validator.ValidateRequestAsync(parameters, client.ToValidationResult(), _ct);
|
||||
|
||||
result.IsError.ShouldBeTrue();
|
||||
result.Error.ShouldBe(OidcConstants.TokenErrors.InvalidGrant);
|
||||
|
|
@ -117,7 +117,7 @@ public class TokenRequestValidation_Code_Invalid
|
|||
parameters.Add(OidcConstants.TokenRequest.Code, longCode);
|
||||
parameters.Add(OidcConstants.TokenRequest.RedirectUri, "https://server/cb");
|
||||
|
||||
var result = await validator.ValidateRequestAsync(parameters, client.ToValidationResult());
|
||||
var result = await validator.ValidateRequestAsync(parameters, client.ToValidationResult(), _ct);
|
||||
|
||||
result.IsError.ShouldBeTrue();
|
||||
result.Error.ShouldBe(OidcConstants.TokenErrors.InvalidGrant);
|
||||
|
|
@ -150,7 +150,7 @@ public class TokenRequestValidation_Code_Invalid
|
|||
parameters.Add(OidcConstants.TokenRequest.Code, handle);
|
||||
parameters.Add(OidcConstants.TokenRequest.RedirectUri, "https://server/cb");
|
||||
|
||||
var result = await validator.ValidateRequestAsync(parameters, client.ToValidationResult());
|
||||
var result = await validator.ValidateRequestAsync(parameters, client.ToValidationResult(), _ct);
|
||||
|
||||
result.IsError.ShouldBeTrue();
|
||||
OidcConstants.TokenErrors.InvalidRequest.ShouldBe(result.Error);
|
||||
|
|
@ -183,7 +183,7 @@ public class TokenRequestValidation_Code_Invalid
|
|||
parameters.Add(OidcConstants.TokenRequest.Code, handle);
|
||||
parameters.Add(OidcConstants.TokenRequest.RedirectUri, "https://server/cb");
|
||||
|
||||
var result = await validator.ValidateRequestAsync(parameters, client.ToValidationResult());
|
||||
var result = await validator.ValidateRequestAsync(parameters, client.ToValidationResult(), _ct);
|
||||
|
||||
result.IsError.ShouldBeTrue();
|
||||
result.Error.ShouldBe(OidcConstants.TokenErrors.UnauthorizedClient);
|
||||
|
|
@ -217,7 +217,7 @@ public class TokenRequestValidation_Code_Invalid
|
|||
parameters.Add(OidcConstants.TokenRequest.Code, handle);
|
||||
parameters.Add(OidcConstants.TokenRequest.RedirectUri, "https://server/cb");
|
||||
|
||||
var result = await validator.ValidateRequestAsync(parameters, client2.ToValidationResult());
|
||||
var result = await validator.ValidateRequestAsync(parameters, client2.ToValidationResult(), _ct);
|
||||
|
||||
result.IsError.ShouldBeTrue();
|
||||
result.Error.ShouldBe(OidcConstants.TokenErrors.InvalidGrant);
|
||||
|
|
@ -249,7 +249,7 @@ public class TokenRequestValidation_Code_Invalid
|
|||
parameters.Add(OidcConstants.TokenRequest.GrantType, OidcConstants.GrantTypes.AuthorizationCode);
|
||||
parameters.Add(OidcConstants.TokenRequest.Code, handle);
|
||||
|
||||
var result = await validator.ValidateRequestAsync(parameters, client.ToValidationResult());
|
||||
var result = await validator.ValidateRequestAsync(parameters, client.ToValidationResult(), _ct);
|
||||
|
||||
result.IsError.ShouldBeTrue();
|
||||
result.Error.ShouldBe(OidcConstants.TokenErrors.UnauthorizedClient);
|
||||
|
|
@ -282,7 +282,7 @@ public class TokenRequestValidation_Code_Invalid
|
|||
parameters.Add(OidcConstants.TokenRequest.Code, handle);
|
||||
parameters.Add(OidcConstants.TokenRequest.RedirectUri, "https://server2/cb");
|
||||
|
||||
var result = await validator.ValidateRequestAsync(parameters, client.ToValidationResult());
|
||||
var result = await validator.ValidateRequestAsync(parameters, client.ToValidationResult(), _ct);
|
||||
|
||||
result.IsError.ShouldBeTrue();
|
||||
result.Error.ShouldBe(OidcConstants.TokenErrors.InvalidGrant);
|
||||
|
|
@ -315,7 +315,7 @@ public class TokenRequestValidation_Code_Invalid
|
|||
parameters.Add(OidcConstants.TokenRequest.Code, handle);
|
||||
parameters.Add(OidcConstants.TokenRequest.RedirectUri, "https://server/cb");
|
||||
|
||||
var result = await validator.ValidateRequestAsync(parameters, client.ToValidationResult());
|
||||
var result = await validator.ValidateRequestAsync(parameters, client.ToValidationResult(), _ct);
|
||||
|
||||
result.IsError.ShouldBeTrue();
|
||||
result.Error.ShouldBe(OidcConstants.TokenErrors.InvalidGrant);
|
||||
|
|
@ -353,7 +353,7 @@ public class TokenRequestValidation_Code_Invalid
|
|||
parameters.Add(OidcConstants.TokenRequest.RedirectUri, "https://server/cb");
|
||||
|
||||
// request first time
|
||||
var result = await validator.ValidateRequestAsync(parameters, client.ToValidationResult());
|
||||
var result = await validator.ValidateRequestAsync(parameters, client.ToValidationResult(), _ct);
|
||||
|
||||
result.IsError.ShouldBeFalse();
|
||||
|
||||
|
|
@ -361,7 +361,7 @@ public class TokenRequestValidation_Code_Invalid
|
|||
validator = Factory.CreateTokenRequestValidator(
|
||||
authorizationCodeStore: store);
|
||||
|
||||
result = await validator.ValidateRequestAsync(parameters, client.ToValidationResult());
|
||||
result = await validator.ValidateRequestAsync(parameters, client.ToValidationResult(), _ct);
|
||||
|
||||
result.IsError.ShouldBeTrue();
|
||||
result.Error.ShouldBe(OidcConstants.TokenErrors.InvalidGrant);
|
||||
|
|
@ -398,7 +398,7 @@ public class TokenRequestValidation_Code_Invalid
|
|||
parameters.Add(OidcConstants.TokenRequest.Code, handle);
|
||||
parameters.Add(OidcConstants.TokenRequest.RedirectUri, "https://server/cb");
|
||||
|
||||
var result = await validator.ValidateRequestAsync(parameters, client.ToValidationResult());
|
||||
var result = await validator.ValidateRequestAsync(parameters, client.ToValidationResult(), _ct);
|
||||
|
||||
result.IsError.ShouldBeTrue();
|
||||
result.Error.ShouldBe(OidcConstants.TokenErrors.InvalidGrant);
|
||||
|
|
@ -437,7 +437,7 @@ public class TokenRequestValidation_Code_Invalid
|
|||
parameters.Add(OidcConstants.TokenRequest.Resource, "urn:api1" + new string('x', 512));
|
||||
|
||||
{
|
||||
var result = await validator.ValidateRequestAsync(parameters, client.ToValidationResult());
|
||||
var result = await validator.ValidateRequestAsync(parameters, client.ToValidationResult(), _ct);
|
||||
|
||||
result.IsError.ShouldBeTrue();
|
||||
result.Error.ShouldBe("invalid_target");
|
||||
|
|
@ -445,14 +445,14 @@ public class TokenRequestValidation_Code_Invalid
|
|||
{
|
||||
parameters[OidcConstants.TokenRequest.Resource] = "api";
|
||||
|
||||
var result = await validator.ValidateRequestAsync(parameters, client.ToValidationResult());
|
||||
var result = await validator.ValidateRequestAsync(parameters, client.ToValidationResult(), _ct);
|
||||
result.IsError.ShouldBeTrue();
|
||||
result.Error.ShouldBe("invalid_target");
|
||||
}
|
||||
{
|
||||
parameters[OidcConstants.TokenRequest.Resource] = "urn:api3";
|
||||
|
||||
var result = await validator.ValidateRequestAsync(parameters, client.ToValidationResult());
|
||||
var result = await validator.ValidateRequestAsync(parameters, client.ToValidationResult(), _ct);
|
||||
result.IsError.ShouldBeTrue();
|
||||
result.Error.ShouldBe("invalid_target");
|
||||
}
|
||||
|
|
@ -460,7 +460,7 @@ public class TokenRequestValidation_Code_Invalid
|
|||
parameters[OidcConstants.TokenRequest.Resource] = "urn:api1";
|
||||
parameters.Add(OidcConstants.TokenRequest.Resource, "urn:api2");
|
||||
|
||||
var result = await validator.ValidateRequestAsync(parameters, client.ToValidationResult());
|
||||
var result = await validator.ValidateRequestAsync(parameters, client.ToValidationResult(), _ct);
|
||||
result.IsError.ShouldBeTrue();
|
||||
result.Error.ShouldBe("invalid_target");
|
||||
}
|
||||
|
|
@ -502,7 +502,7 @@ public class TokenRequestValidation_Code_Invalid
|
|||
{
|
||||
InvalidScopes = { "foo" }
|
||||
};
|
||||
var result = await validator.ValidateRequestAsync(parameters, client.ToValidationResult());
|
||||
var result = await validator.ValidateRequestAsync(parameters, client.ToValidationResult(), _ct);
|
||||
|
||||
result.IsError.ShouldBeTrue();
|
||||
result.Error.ShouldBe("invalid_scope");
|
||||
|
|
@ -536,7 +536,7 @@ public class TokenRequestValidation_Code_Invalid
|
|||
{
|
||||
InvalidResourceIndicators = { "foo" }
|
||||
};
|
||||
var result = await validator.ValidateRequestAsync(parameters, client.ToValidationResult());
|
||||
var result = await validator.ValidateRequestAsync(parameters, client.ToValidationResult(), _ct);
|
||||
|
||||
result.IsError.ShouldBeTrue();
|
||||
result.Error.ShouldBe("invalid_target");
|
||||
|
|
|
|||
|
|
@ -44,7 +44,7 @@ public class TokenRequestValidation_DeviceCode_Invalid
|
|||
{OidcConstants.TokenRequest.GrantType, OidcConstants.GrantTypes.DeviceCode}
|
||||
};
|
||||
|
||||
var result = await validator.ValidateRequestAsync(parameters, client.ToValidationResult());
|
||||
var result = await validator.ValidateRequestAsync(parameters, client.ToValidationResult(), _ct);
|
||||
result.IsError.ShouldBeTrue();
|
||||
result.Error.ShouldBe(OidcConstants.TokenErrors.InvalidRequest);
|
||||
}
|
||||
|
|
@ -65,7 +65,7 @@ public class TokenRequestValidation_DeviceCode_Invalid
|
|||
{"device_code", longCode}
|
||||
};
|
||||
|
||||
var result = await validator.ValidateRequestAsync(parameters, client.ToValidationResult());
|
||||
var result = await validator.ValidateRequestAsync(parameters, client.ToValidationResult(), _ct);
|
||||
result.IsError.ShouldBeTrue();
|
||||
result.Error.ShouldBe(OidcConstants.TokenErrors.InvalidGrant);
|
||||
}
|
||||
|
|
@ -84,7 +84,7 @@ public class TokenRequestValidation_DeviceCode_Invalid
|
|||
{"device_code", Guid.NewGuid().ToString()}
|
||||
};
|
||||
|
||||
var result = await validator.ValidateRequestAsync(parameters, client.ToValidationResult());
|
||||
var result = await validator.ValidateRequestAsync(parameters, client.ToValidationResult(), _ct);
|
||||
result.IsError.ShouldBeTrue();
|
||||
result.Error.ShouldBe(OidcConstants.TokenErrors.UnauthorizedClient);
|
||||
}
|
||||
|
|
@ -103,7 +103,7 @@ public class TokenRequestValidation_DeviceCode_Invalid
|
|||
{"device_code", Guid.NewGuid().ToString()}
|
||||
};
|
||||
|
||||
var result = await validator.ValidateRequestAsync(parameters, client.ToValidationResult());
|
||||
var result = await validator.ValidateRequestAsync(parameters, client.ToValidationResult(), _ct);
|
||||
result.IsError.ShouldBeTrue();
|
||||
result.Error.ShouldNotBeNull();
|
||||
}
|
||||
|
|
@ -123,7 +123,7 @@ public class TokenRequestValidation_DeviceCode_Invalid
|
|||
{ OidcConstants.TokenRequest.Resource, "api" }
|
||||
};
|
||||
|
||||
var result = await validator.ValidateRequestAsync(parameters, client.ToValidationResult());
|
||||
var result = await validator.ValidateRequestAsync(parameters, client.ToValidationResult(), _ct);
|
||||
result.IsError.ShouldBeTrue();
|
||||
result.Error.ShouldBe("invalid_target");
|
||||
}
|
||||
|
|
@ -143,7 +143,7 @@ public class TokenRequestValidation_DeviceCode_Invalid
|
|||
{ OidcConstants.TokenRequest.Resource, "urn:api1" }
|
||||
};
|
||||
|
||||
var result = await validator.ValidateRequestAsync(parameters, client.ToValidationResult());
|
||||
var result = await validator.ValidateRequestAsync(parameters, client.ToValidationResult(), _ct);
|
||||
result.IsError.ShouldBeTrue();
|
||||
result.Error.ShouldBe("invalid_target");
|
||||
}
|
||||
|
|
|
|||
|
|
@ -29,7 +29,7 @@ public class TokenRequestValidation_ExtensionGrants_Invalid
|
|||
{ OidcConstants.TokenRequest.Scope, "resource" }
|
||||
};
|
||||
|
||||
var result = await validator.ValidateRequestAsync(parameters, client.ToValidationResult());
|
||||
var result = await validator.ValidateRequestAsync(parameters, client.ToValidationResult(), _ct);
|
||||
|
||||
result.IsError.ShouldBeTrue();
|
||||
result.Error.ShouldBe(OidcConstants.TokenErrors.UnsupportedGrantType);
|
||||
|
|
@ -49,7 +49,7 @@ public class TokenRequestValidation_ExtensionGrants_Invalid
|
|||
{ OidcConstants.TokenRequest.Scope, "resource" }
|
||||
};
|
||||
|
||||
var result = await validator.ValidateRequestAsync(parameters, client.ToValidationResult());
|
||||
var result = await validator.ValidateRequestAsync(parameters, client.ToValidationResult(), _ct);
|
||||
|
||||
result.IsError.ShouldBeTrue();
|
||||
result.Error.ShouldBe(OidcConstants.TokenErrors.UnsupportedGrantType);
|
||||
|
|
@ -69,7 +69,7 @@ public class TokenRequestValidation_ExtensionGrants_Invalid
|
|||
{ OidcConstants.TokenRequest.Scope, "resource" }
|
||||
};
|
||||
|
||||
var result = await validator.ValidateRequestAsync(parameters, client.ToValidationResult());
|
||||
var result = await validator.ValidateRequestAsync(parameters, client.ToValidationResult(), _ct);
|
||||
|
||||
result.IsError.ShouldBeTrue();
|
||||
result.Error.ShouldBe(OidcConstants.TokenErrors.InvalidGrant);
|
||||
|
|
@ -93,7 +93,7 @@ public class TokenRequestValidation_ExtensionGrants_Invalid
|
|||
|
||||
var result = await validator.ValidateRequestAsync(
|
||||
parameters,
|
||||
client.ToValidationResult());
|
||||
client.ToValidationResult(), _ct);
|
||||
|
||||
result.IsError.ShouldBeTrue();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -26,7 +26,7 @@ public class TokenRequestValidation_General_Invalid
|
|||
{
|
||||
var validator = Factory.CreateTokenRequestValidator();
|
||||
|
||||
Func<Task> act = () => validator.ValidateRequestAsync(null, null);
|
||||
Func<Task> act = () => validator.ValidateRequestAsync(null, null, _ct);
|
||||
|
||||
await act.ShouldThrowAsync<ArgumentNullException>();
|
||||
}
|
||||
|
|
@ -42,7 +42,7 @@ public class TokenRequestValidation_General_Invalid
|
|||
parameters.Add(OidcConstants.TokenRequest.Code, "valid");
|
||||
parameters.Add(OidcConstants.TokenRequest.RedirectUri, "https://server/cb");
|
||||
|
||||
Func<Task> act = () => validator.ValidateRequestAsync(parameters, null);
|
||||
Func<Task> act = () => validator.ValidateRequestAsync(parameters, null, _ct);
|
||||
|
||||
await act.ShouldThrowAsync<ArgumentNullException>();
|
||||
}
|
||||
|
|
@ -74,7 +74,7 @@ public class TokenRequestValidation_General_Invalid
|
|||
parameters.Add(OidcConstants.TokenRequest.Code, handle);
|
||||
parameters.Add(OidcConstants.TokenRequest.RedirectUri, "https://server/cb");
|
||||
|
||||
var result = await validator.ValidateRequestAsync(parameters, client.ToValidationResult());
|
||||
var result = await validator.ValidateRequestAsync(parameters, client.ToValidationResult(), _ct);
|
||||
|
||||
result.IsError.ShouldBeTrue();
|
||||
result.Error.ShouldBe(OidcConstants.TokenErrors.UnsupportedGrantType);
|
||||
|
|
@ -93,7 +93,7 @@ public class TokenRequestValidation_General_Invalid
|
|||
var parameters = new NameValueCollection();
|
||||
parameters.Add(OidcConstants.TokenRequest.GrantType, "client_credentials");
|
||||
|
||||
var result = await validator.ValidateRequestAsync(parameters, client.ToValidationResult());
|
||||
var result = await validator.ValidateRequestAsync(parameters, client.ToValidationResult(), _ct);
|
||||
|
||||
result.IsError.ShouldBeTrue();
|
||||
result.Error.ShouldBe(OidcConstants.TokenErrors.InvalidClient);
|
||||
|
|
@ -125,7 +125,7 @@ public class TokenRequestValidation_General_Invalid
|
|||
parameters.Add(OidcConstants.TokenRequest.Code, handle);
|
||||
parameters.Add(OidcConstants.TokenRequest.RedirectUri, "https://server/cb");
|
||||
|
||||
var result = await validator.ValidateRequestAsync(parameters, client.ToValidationResult());
|
||||
var result = await validator.ValidateRequestAsync(parameters, client.ToValidationResult(), _ct);
|
||||
|
||||
result.IsError.ShouldBeTrue();
|
||||
result.Error.ShouldBe(OidcConstants.TokenErrors.UnsupportedGrantType);
|
||||
|
|
|
|||
|
|
@ -52,7 +52,7 @@ public class TokenRequestValidation_Invalid
|
|||
{ OidcConstants.TokenRequest.RefreshToken, handle }
|
||||
};
|
||||
|
||||
var result = await validator.ValidateRequestAsync(parameters, client.ToValidationResult());
|
||||
var result = await validator.ValidateRequestAsync(parameters, client.ToValidationResult(), _ct);
|
||||
|
||||
result.IsError.ShouldBeTrue();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -60,7 +60,7 @@ public class TokenRequestValidation_PKCE
|
|||
parameters.Add(OidcConstants.TokenRequest.CodeVerifier, verifier);
|
||||
parameters.Add(OidcConstants.TokenRequest.RedirectUri, "https://server/cb");
|
||||
|
||||
var result = await validator.ValidateRequestAsync(parameters, client.ToValidationResult());
|
||||
var result = await validator.ValidateRequestAsync(parameters, client.ToValidationResult(), _ct);
|
||||
|
||||
result.IsError.ShouldBeFalse();
|
||||
}
|
||||
|
|
@ -100,7 +100,7 @@ public class TokenRequestValidation_PKCE
|
|||
parameters.Add(OidcConstants.TokenRequest.CodeVerifier, verifier);
|
||||
parameters.Add(OidcConstants.TokenRequest.RedirectUri, "https://server/cb");
|
||||
|
||||
var result = await validator.ValidateRequestAsync(parameters, client.ToValidationResult());
|
||||
var result = await validator.ValidateRequestAsync(parameters, client.ToValidationResult(), _ct);
|
||||
|
||||
result.IsError.ShouldBeFalse();
|
||||
}
|
||||
|
|
@ -144,7 +144,7 @@ public class TokenRequestValidation_PKCE
|
|||
parameters.Add(OidcConstants.TokenRequest.CodeVerifier, verifier);
|
||||
parameters.Add(OidcConstants.TokenRequest.RedirectUri, "https://server/cb");
|
||||
|
||||
var result = await validator.ValidateRequestAsync(parameters, client.ToValidationResult());
|
||||
var result = await validator.ValidateRequestAsync(parameters, client.ToValidationResult(), _ct);
|
||||
|
||||
result.IsError.ShouldBeFalse();
|
||||
}
|
||||
|
|
@ -180,7 +180,7 @@ public class TokenRequestValidation_PKCE
|
|||
parameters.Add(OidcConstants.TokenRequest.Code, handle);
|
||||
parameters.Add(OidcConstants.TokenRequest.RedirectUri, "https://server/cb");
|
||||
|
||||
var result = await validator.ValidateRequestAsync(parameters, client.ToValidationResult());
|
||||
var result = await validator.ValidateRequestAsync(parameters, client.ToValidationResult(), _ct);
|
||||
|
||||
result.IsError.ShouldBeTrue();
|
||||
result.Error.ShouldBe(OidcConstants.TokenErrors.InvalidGrant);
|
||||
|
|
@ -220,7 +220,7 @@ public class TokenRequestValidation_PKCE
|
|||
parameters.Add(OidcConstants.TokenRequest.CodeVerifier, "x".Repeat(lengths.CodeVerifierMinLength));
|
||||
parameters.Add(OidcConstants.TokenRequest.RedirectUri, "https://server/cb");
|
||||
|
||||
var result = await validator.ValidateRequestAsync(parameters, client.ToValidationResult());
|
||||
var result = await validator.ValidateRequestAsync(parameters, client.ToValidationResult(), _ct);
|
||||
|
||||
result.IsError.ShouldBeTrue();
|
||||
result.Error.ShouldBe(OidcConstants.TokenErrors.InvalidGrant);
|
||||
|
|
@ -263,7 +263,7 @@ public class TokenRequestValidation_PKCE
|
|||
parameters.Add(OidcConstants.TokenRequest.CodeVerifier, verifier + "invalid");
|
||||
parameters.Add(OidcConstants.TokenRequest.RedirectUri, "https://server/cb");
|
||||
|
||||
var result = await validator.ValidateRequestAsync(parameters, client.ToValidationResult());
|
||||
var result = await validator.ValidateRequestAsync(parameters, client.ToValidationResult(), _ct);
|
||||
|
||||
result.IsError.ShouldBeTrue();
|
||||
result.Error.ShouldBe(OidcConstants.TokenErrors.InvalidGrant);
|
||||
|
|
@ -308,7 +308,7 @@ public class TokenRequestValidation_PKCE
|
|||
parameters.Add(OidcConstants.TokenRequest.CodeVerifier, verifier + "invalid");
|
||||
parameters.Add(OidcConstants.TokenRequest.RedirectUri, "https://server/cb");
|
||||
|
||||
var result = await validator.ValidateRequestAsync(parameters, client.ToValidationResult());
|
||||
var result = await validator.ValidateRequestAsync(parameters, client.ToValidationResult(), _ct);
|
||||
|
||||
result.IsError.ShouldBeTrue();
|
||||
result.Error.ShouldBe(OidcConstants.TokenErrors.InvalidGrant);
|
||||
|
|
|
|||
|
|
@ -34,7 +34,7 @@ public class TokenRequestValidation_RefreshToken_Invalid
|
|||
parameters.Add(OidcConstants.TokenRequest.GrantType, "refresh_token");
|
||||
parameters.Add(OidcConstants.TokenRequest.RefreshToken, "nonexistent");
|
||||
|
||||
var result = await validator.ValidateRequestAsync(parameters, client.ToValidationResult());
|
||||
var result = await validator.ValidateRequestAsync(parameters, client.ToValidationResult(), _ct);
|
||||
|
||||
result.IsError.ShouldBeTrue();
|
||||
result.Error.ShouldBe(OidcConstants.TokenErrors.InvalidGrant);
|
||||
|
|
@ -54,7 +54,7 @@ public class TokenRequestValidation_RefreshToken_Invalid
|
|||
parameters.Add(OidcConstants.TokenRequest.GrantType, "refresh_token");
|
||||
parameters.Add(OidcConstants.TokenRequest.RefreshToken, longRefreshToken);
|
||||
|
||||
var result = await validator.ValidateRequestAsync(parameters, client.ToValidationResult());
|
||||
var result = await validator.ValidateRequestAsync(parameters, client.ToValidationResult(), _ct);
|
||||
|
||||
result.IsError.ShouldBeTrue();
|
||||
result.Error.ShouldBe(OidcConstants.TokenErrors.InvalidGrant);
|
||||
|
|
@ -82,7 +82,7 @@ public class TokenRequestValidation_RefreshToken_Invalid
|
|||
parameters.Add(OidcConstants.TokenRequest.GrantType, "refresh_token");
|
||||
parameters.Add(OidcConstants.TokenRequest.RefreshToken, handle);
|
||||
|
||||
var result = await validator.ValidateRequestAsync(parameters, client.ToValidationResult());
|
||||
var result = await validator.ValidateRequestAsync(parameters, client.ToValidationResult(), _ct);
|
||||
|
||||
result.IsError.ShouldBeTrue();
|
||||
result.Error.ShouldBe(OidcConstants.TokenErrors.InvalidGrant);
|
||||
|
|
@ -109,7 +109,7 @@ public class TokenRequestValidation_RefreshToken_Invalid
|
|||
parameters.Add(OidcConstants.TokenRequest.GrantType, "refresh_token");
|
||||
parameters.Add(OidcConstants.TokenRequest.RefreshToken, handle);
|
||||
|
||||
var result = await validator.ValidateRequestAsync(parameters, client.ToValidationResult());
|
||||
var result = await validator.ValidateRequestAsync(parameters, client.ToValidationResult(), _ct);
|
||||
|
||||
result.IsError.ShouldBeTrue();
|
||||
result.Error.ShouldBe(OidcConstants.TokenErrors.InvalidGrant);
|
||||
|
|
@ -138,7 +138,7 @@ public class TokenRequestValidation_RefreshToken_Invalid
|
|||
parameters.Add(OidcConstants.TokenRequest.GrantType, "refresh_token");
|
||||
parameters.Add(OidcConstants.TokenRequest.RefreshToken, handle);
|
||||
|
||||
var result = await validator.ValidateRequestAsync(parameters, client.ToValidationResult());
|
||||
var result = await validator.ValidateRequestAsync(parameters, client.ToValidationResult(), _ct);
|
||||
|
||||
result.IsError.ShouldBeTrue();
|
||||
result.Error.ShouldBe(OidcConstants.TokenErrors.InvalidGrant);
|
||||
|
|
@ -171,7 +171,7 @@ public class TokenRequestValidation_RefreshToken_Invalid
|
|||
parameters.Add(OidcConstants.TokenRequest.GrantType, "refresh_token");
|
||||
parameters.Add(OidcConstants.TokenRequest.RefreshToken, handle);
|
||||
|
||||
var result = await validator.ValidateRequestAsync(parameters, client.ToValidationResult());
|
||||
var result = await validator.ValidateRequestAsync(parameters, client.ToValidationResult(), _ct);
|
||||
|
||||
result.IsError.ShouldBeTrue();
|
||||
result.Error.ShouldBe(OidcConstants.TokenErrors.InvalidGrant);
|
||||
|
|
@ -203,7 +203,7 @@ public class TokenRequestValidation_RefreshToken_Invalid
|
|||
|
||||
{
|
||||
parameters[OidcConstants.TokenRequest.Resource] = "urn:api1" + new string('x', 512);
|
||||
var result = await validator.ValidateRequestAsync(parameters, client.ToValidationResult());
|
||||
var result = await validator.ValidateRequestAsync(parameters, client.ToValidationResult(), _ct);
|
||||
|
||||
result.IsError.ShouldBeTrue();
|
||||
result.Error.ShouldBe(OidcConstants.TokenErrors.InvalidTarget);
|
||||
|
|
@ -211,7 +211,7 @@ public class TokenRequestValidation_RefreshToken_Invalid
|
|||
{
|
||||
parameters[OidcConstants.TokenRequest.Resource] = "api";
|
||||
|
||||
var result = await validator.ValidateRequestAsync(parameters, client.ToValidationResult());
|
||||
var result = await validator.ValidateRequestAsync(parameters, client.ToValidationResult(), _ct);
|
||||
result.IsError.ShouldBeTrue();
|
||||
result.Error.ShouldBe("invalid_target");
|
||||
}
|
||||
|
|
@ -219,7 +219,7 @@ public class TokenRequestValidation_RefreshToken_Invalid
|
|||
parameters[OidcConstants.TokenRequest.Resource] = "urn:api1";
|
||||
parameters.Add(OidcConstants.TokenRequest.Resource, "urn:api2");
|
||||
|
||||
var result = await validator.ValidateRequestAsync(parameters, client.ToValidationResult());
|
||||
var result = await validator.ValidateRequestAsync(parameters, client.ToValidationResult(), _ct);
|
||||
result.IsError.ShouldBeTrue();
|
||||
result.Error.ShouldBe("invalid_target");
|
||||
}
|
||||
|
|
@ -255,7 +255,7 @@ public class TokenRequestValidation_RefreshToken_Invalid
|
|||
{
|
||||
InvalidScopes = { "foo" }
|
||||
};
|
||||
var result = await validator.ValidateRequestAsync(parameters, client);
|
||||
var result = await validator.ValidateRequestAsync(parameters, client, _ct);
|
||||
|
||||
result.IsError.ShouldBeTrue();
|
||||
result.Error.ShouldBe("invalid_scope");
|
||||
|
|
@ -281,7 +281,7 @@ public class TokenRequestValidation_RefreshToken_Invalid
|
|||
{
|
||||
InvalidResourceIndicators = { "foo" }
|
||||
};
|
||||
var result = await validator.ValidateRequestAsync(parameters, client);
|
||||
var result = await validator.ValidateRequestAsync(parameters, client, _ct);
|
||||
|
||||
result.IsError.ShouldBeTrue();
|
||||
result.Error.ShouldBe("invalid_target");
|
||||
|
|
@ -313,7 +313,7 @@ public class TokenRequestValidation_RefreshToken_Invalid
|
|||
parameters.Add(OidcConstants.TokenRequest.RefreshToken, handle);
|
||||
parameters.Add("resource", "urn:api3");
|
||||
|
||||
var result = await validator.ValidateRequestAsync(parameters, client);
|
||||
var result = await validator.ValidateRequestAsync(parameters, client, _ct);
|
||||
|
||||
result.IsError.ShouldBeTrue();
|
||||
result.Error.ShouldBe("invalid_target");
|
||||
|
|
|
|||
|
|
@ -30,7 +30,7 @@ public class TokenRequestValidation_ResourceOwner_Invalid
|
|||
parameters.Add(OidcConstants.TokenRequest.GrantType, OidcConstants.GrantTypes.Password);
|
||||
parameters.Add(OidcConstants.TokenRequest.Scope, "resource");
|
||||
|
||||
var result = await validator.ValidateRequestAsync(parameters, client.ToValidationResult());
|
||||
var result = await validator.ValidateRequestAsync(parameters, client.ToValidationResult(), _ct);
|
||||
|
||||
result.IsError.ShouldBeTrue();
|
||||
result.Error.ShouldBe(OidcConstants.TokenErrors.UnauthorizedClient);
|
||||
|
|
@ -49,7 +49,7 @@ public class TokenRequestValidation_ResourceOwner_Invalid
|
|||
parameters.Add(OidcConstants.TokenRequest.UserName, "bob");
|
||||
parameters.Add(OidcConstants.TokenRequest.Password, "bob");
|
||||
|
||||
var result = await validator.ValidateRequestAsync(parameters, client.ToValidationResult());
|
||||
var result = await validator.ValidateRequestAsync(parameters, client.ToValidationResult(), _ct);
|
||||
|
||||
result.IsError.ShouldBeTrue();
|
||||
result.Error.ShouldBe(OidcConstants.TokenErrors.InvalidScope);
|
||||
|
|
@ -68,7 +68,7 @@ public class TokenRequestValidation_ResourceOwner_Invalid
|
|||
parameters.Add(OidcConstants.TokenRequest.UserName, "bob");
|
||||
parameters.Add(OidcConstants.TokenRequest.Password, "bob");
|
||||
|
||||
var result = await validator.ValidateRequestAsync(parameters, client.ToValidationResult());
|
||||
var result = await validator.ValidateRequestAsync(parameters, client.ToValidationResult(), _ct);
|
||||
|
||||
result.IsError.ShouldBeTrue();
|
||||
result.Error.ShouldBe(OidcConstants.TokenErrors.InvalidScope);
|
||||
|
|
@ -87,7 +87,7 @@ public class TokenRequestValidation_ResourceOwner_Invalid
|
|||
parameters.Add(OidcConstants.TokenRequest.UserName, "bob");
|
||||
parameters.Add(OidcConstants.TokenRequest.Password, "bob");
|
||||
|
||||
var result = await validator.ValidateRequestAsync(parameters, client.ToValidationResult());
|
||||
var result = await validator.ValidateRequestAsync(parameters, client.ToValidationResult(), _ct);
|
||||
|
||||
result.IsError.ShouldBeTrue();
|
||||
result.Error.ShouldBe(OidcConstants.TokenErrors.InvalidScope);
|
||||
|
|
@ -106,7 +106,7 @@ public class TokenRequestValidation_ResourceOwner_Invalid
|
|||
parameters.Add(OidcConstants.TokenRequest.UserName, "bob");
|
||||
parameters.Add(OidcConstants.TokenRequest.Password, "bob");
|
||||
|
||||
var result = await validator.ValidateRequestAsync(parameters, client.ToValidationResult());
|
||||
var result = await validator.ValidateRequestAsync(parameters, client.ToValidationResult(), _ct);
|
||||
|
||||
result.IsError.ShouldBeTrue();
|
||||
result.Error.ShouldBe(OidcConstants.TokenErrors.InvalidScope);
|
||||
|
|
@ -123,7 +123,7 @@ public class TokenRequestValidation_ResourceOwner_Invalid
|
|||
parameters.Add(OidcConstants.TokenRequest.GrantType, OidcConstants.GrantTypes.Password);
|
||||
parameters.Add(OidcConstants.TokenRequest.Scope, "resource");
|
||||
|
||||
var result = await validator.ValidateRequestAsync(parameters, client.ToValidationResult());
|
||||
var result = await validator.ValidateRequestAsync(parameters, client.ToValidationResult(), _ct);
|
||||
|
||||
result.IsError.ShouldBeTrue();
|
||||
result.Error.ShouldBe(OidcConstants.TokenErrors.InvalidGrant);
|
||||
|
|
@ -141,7 +141,7 @@ public class TokenRequestValidation_ResourceOwner_Invalid
|
|||
parameters.Add(OidcConstants.TokenRequest.Scope, "resource");
|
||||
parameters.Add(OidcConstants.TokenRequest.Password, "bob");
|
||||
|
||||
var result = await validator.ValidateRequestAsync(parameters, client.ToValidationResult());
|
||||
var result = await validator.ValidateRequestAsync(parameters, client.ToValidationResult(), _ct);
|
||||
|
||||
result.IsError.ShouldBeTrue();
|
||||
result.Error.ShouldBe(OidcConstants.TokenErrors.InvalidGrant);
|
||||
|
|
@ -160,7 +160,7 @@ public class TokenRequestValidation_ResourceOwner_Invalid
|
|||
parameters.Add(OidcConstants.TokenRequest.UserName, "bob");
|
||||
parameters.Add(OidcConstants.TokenRequest.Password, "notbob");
|
||||
|
||||
var result = await validator.ValidateRequestAsync(parameters, client.ToValidationResult());
|
||||
var result = await validator.ValidateRequestAsync(parameters, client.ToValidationResult(), _ct);
|
||||
|
||||
result.IsError.ShouldBeTrue();
|
||||
result.Error.ShouldBe(OidcConstants.TokenErrors.InvalidGrant);
|
||||
|
|
@ -179,7 +179,7 @@ public class TokenRequestValidation_ResourceOwner_Invalid
|
|||
parameters.Add(OidcConstants.TokenRequest.Scope, "resource");
|
||||
parameters.Add(OidcConstants.TokenRequest.UserName, "bob_with_password");
|
||||
|
||||
var result = await validator.ValidateRequestAsync(parameters, client.ToValidationResult());
|
||||
var result = await validator.ValidateRequestAsync(parameters, client.ToValidationResult(), _ct);
|
||||
|
||||
result.IsError.ShouldBeTrue();
|
||||
}
|
||||
|
|
@ -197,7 +197,7 @@ public class TokenRequestValidation_ResourceOwner_Invalid
|
|||
parameters.Add(OidcConstants.TokenRequest.UserName, "bob");
|
||||
parameters.Add(OidcConstants.TokenRequest.Password, "bob");
|
||||
|
||||
var result = await validator.ValidateRequestAsync(parameters, client.ToValidationResult());
|
||||
var result = await validator.ValidateRequestAsync(parameters, client.ToValidationResult(), _ct);
|
||||
|
||||
result.IsError.ShouldBeTrue();
|
||||
result.Error.ShouldBe(OidcConstants.TokenErrors.UnsupportedGrantType);
|
||||
|
|
@ -217,7 +217,7 @@ public class TokenRequestValidation_ResourceOwner_Invalid
|
|||
parameters.Add(OidcConstants.TokenRequest.UserName, "bob");
|
||||
parameters.Add(OidcConstants.TokenRequest.Password, "bob");
|
||||
|
||||
var result = await validator.ValidateRequestAsync(parameters, client.ToValidationResult());
|
||||
var result = await validator.ValidateRequestAsync(parameters, client.ToValidationResult(), _ct);
|
||||
|
||||
result.IsError.ShouldBeTrue();
|
||||
result.Error.ShouldBe(OidcConstants.TokenErrors.InvalidGrant);
|
||||
|
|
@ -236,7 +236,7 @@ public class TokenRequestValidation_ResourceOwner_Invalid
|
|||
parameters.Add(OidcConstants.TokenRequest.UserName, "bob");
|
||||
parameters.Add(OidcConstants.TokenRequest.Password, "notbob");
|
||||
|
||||
var result = await validator.ValidateRequestAsync(parameters, client.ToValidationResult());
|
||||
var result = await validator.ValidateRequestAsync(parameters, client.ToValidationResult(), _ct);
|
||||
|
||||
result.IsError.ShouldBeTrue();
|
||||
result.Error.ShouldBe(OidcConstants.TokenErrors.InvalidGrant);
|
||||
|
|
@ -263,7 +263,7 @@ public class TokenRequestValidation_ResourceOwner_Invalid
|
|||
{
|
||||
InvalidScopes = { "foo" }
|
||||
};
|
||||
var result = await validator.ValidateRequestAsync(parameters, client);
|
||||
var result = await validator.ValidateRequestAsync(parameters, client, _ct);
|
||||
|
||||
result.IsError.ShouldBeTrue();
|
||||
result.Error.ShouldBe("invalid_scope");
|
||||
|
|
@ -274,7 +274,7 @@ public class TokenRequestValidation_ResourceOwner_Invalid
|
|||
{
|
||||
InvalidResourceIndicators = { "foo" }
|
||||
};
|
||||
var result = await validator.ValidateRequestAsync(parameters, client);
|
||||
var result = await validator.ValidateRequestAsync(parameters, client, _ct);
|
||||
|
||||
result.IsError.ShouldBeTrue();
|
||||
result.Error.ShouldBe("invalid_target");
|
||||
|
|
|
|||
|
|
@ -32,7 +32,7 @@ public class TokenRequestValidation_Valid
|
|||
parameters.Add(OidcConstants.TokenRequest.Scope, "resource");
|
||||
parameters.Add(OidcConstants.TokenRequest.UserName, "bob_no_password");
|
||||
|
||||
var result = await validator.ValidateRequestAsync(parameters, client.ToValidationResult());
|
||||
var result = await validator.ValidateRequestAsync(parameters, client.ToValidationResult(), _ct);
|
||||
|
||||
result.IsError.ShouldBeFalse();
|
||||
result.ValidatedRequest.UserName.ShouldBe("bob_no_password");
|
||||
|
|
@ -68,7 +68,7 @@ public class TokenRequestValidation_Valid
|
|||
parameters.Add(OidcConstants.TokenRequest.Code, handle);
|
||||
parameters.Add(OidcConstants.TokenRequest.RedirectUri, "https://server/cb");
|
||||
|
||||
var result = await validator.ValidateRequestAsync(parameters, client.ToValidationResult());
|
||||
var result = await validator.ValidateRequestAsync(parameters, client.ToValidationResult(), _ct);
|
||||
|
||||
result.IsError.ShouldBeFalse();
|
||||
}
|
||||
|
|
@ -104,7 +104,7 @@ public class TokenRequestValidation_Valid
|
|||
parameters.Add(OidcConstants.TokenRequest.Code, handle);
|
||||
parameters.Add(OidcConstants.TokenRequest.RedirectUri, "https://server/cb");
|
||||
|
||||
var result = await validator.ValidateRequestAsync(parameters, client.ToValidationResult());
|
||||
var result = await validator.ValidateRequestAsync(parameters, client.ToValidationResult(), _ct);
|
||||
|
||||
result.IsError.ShouldBeFalse();
|
||||
}
|
||||
|
|
@ -121,7 +121,7 @@ public class TokenRequestValidation_Valid
|
|||
parameters.Add(OidcConstants.TokenRequest.GrantType, OidcConstants.GrantTypes.ClientCredentials);
|
||||
parameters.Add(OidcConstants.TokenRequest.Scope, "resource");
|
||||
|
||||
var result = await validator.ValidateRequestAsync(parameters, client.ToValidationResult());
|
||||
var result = await validator.ValidateRequestAsync(parameters, client.ToValidationResult(), _ct);
|
||||
|
||||
result.IsError.ShouldBeFalse();
|
||||
}
|
||||
|
|
@ -138,7 +138,7 @@ public class TokenRequestValidation_Valid
|
|||
parameters.Add(OidcConstants.TokenRequest.GrantType, OidcConstants.GrantTypes.ClientCredentials);
|
||||
|
||||
|
||||
var result = await validator.ValidateRequestAsync(parameters, client.ToValidationResult());
|
||||
var result = await validator.ValidateRequestAsync(parameters, client.ToValidationResult(), _ct);
|
||||
|
||||
result.IsError.ShouldBeFalse();
|
||||
}
|
||||
|
|
@ -155,7 +155,7 @@ public class TokenRequestValidation_Valid
|
|||
parameters.Add(OidcConstants.TokenRequest.GrantType, OidcConstants.GrantTypes.ClientCredentials);
|
||||
parameters.Add(OidcConstants.TokenRequest.Scope, "resource");
|
||||
|
||||
var result = await validator.ValidateRequestAsync(parameters, client.ToValidationResult());
|
||||
var result = await validator.ValidateRequestAsync(parameters, client.ToValidationResult(), _ct);
|
||||
|
||||
result.IsError.ShouldBeFalse();
|
||||
}
|
||||
|
|
@ -172,7 +172,7 @@ public class TokenRequestValidation_Valid
|
|||
parameters.Add(OidcConstants.TokenRequest.GrantType, OidcConstants.GrantTypes.ClientCredentials);
|
||||
parameters.Add(OidcConstants.TokenRequest.Scope, "resource");
|
||||
|
||||
var result = await validator.ValidateRequestAsync(parameters, client.ToValidationResult());
|
||||
var result = await validator.ValidateRequestAsync(parameters, client.ToValidationResult(), _ct);
|
||||
|
||||
result.IsError.ShouldBeFalse();
|
||||
}
|
||||
|
|
@ -191,7 +191,7 @@ public class TokenRequestValidation_Valid
|
|||
parameters.Add(OidcConstants.TokenRequest.Password, "bob");
|
||||
parameters.Add(OidcConstants.TokenRequest.Scope, "resource");
|
||||
|
||||
var result = await validator.ValidateRequestAsync(parameters, client.ToValidationResult());
|
||||
var result = await validator.ValidateRequestAsync(parameters, client.ToValidationResult(), _ct);
|
||||
|
||||
result.IsError.ShouldBeFalse();
|
||||
}
|
||||
|
|
@ -210,7 +210,7 @@ public class TokenRequestValidation_Valid
|
|||
parameters.Add(OidcConstants.TokenRequest.Password, "bob");
|
||||
parameters.Add(OidcConstants.TokenRequest.Scope, "resource offline_access");
|
||||
|
||||
var result = await validator.ValidateRequestAsync(parameters, client.ToValidationResult());
|
||||
var result = await validator.ValidateRequestAsync(parameters, client.ToValidationResult(), _ct);
|
||||
|
||||
result.IsError.ShouldBeFalse();
|
||||
}
|
||||
|
|
@ -229,7 +229,7 @@ public class TokenRequestValidation_Valid
|
|||
parameters.Add(OidcConstants.TokenRequest.Password, "bob");
|
||||
parameters.Add(OidcConstants.TokenRequest.Scope, "resource");
|
||||
|
||||
var result = await validator.ValidateRequestAsync(parameters, client.ToValidationResult());
|
||||
var result = await validator.ValidateRequestAsync(parameters, client.ToValidationResult(), _ct);
|
||||
|
||||
result.IsError.ShouldBeFalse();
|
||||
}
|
||||
|
|
@ -246,7 +246,7 @@ public class TokenRequestValidation_Valid
|
|||
parameters.Add(OidcConstants.TokenRequest.GrantType, "custom_grant");
|
||||
parameters.Add(OidcConstants.TokenRequest.Scope, "resource");
|
||||
|
||||
var result = await validator.ValidateRequestAsync(parameters, client.ToValidationResult());
|
||||
var result = await validator.ValidateRequestAsync(parameters, client.ToValidationResult(), _ct);
|
||||
|
||||
result.IsError.ShouldBeFalse();
|
||||
}
|
||||
|
|
@ -283,7 +283,7 @@ public class TokenRequestValidation_Valid
|
|||
parameters.Add(OidcConstants.TokenRequest.GrantType, "refresh_token");
|
||||
parameters.Add(OidcConstants.TokenRequest.RefreshToken, handle);
|
||||
|
||||
var result = await validator.ValidateRequestAsync(parameters, client.ToValidationResult());
|
||||
var result = await validator.ValidateRequestAsync(parameters, client.ToValidationResult(), _ct);
|
||||
|
||||
result.IsError.ShouldBeFalse();
|
||||
}
|
||||
|
|
@ -315,7 +315,7 @@ public class TokenRequestValidation_Valid
|
|||
parameters.Add(OidcConstants.TokenRequest.GrantType, "refresh_token");
|
||||
parameters.Add(OidcConstants.TokenRequest.RefreshToken, handle);
|
||||
|
||||
var result = await validator.ValidateRequestAsync(parameters, client.ToValidationResult());
|
||||
var result = await validator.ValidateRequestAsync(parameters, client.ToValidationResult(), _ct);
|
||||
|
||||
result.IsError.ShouldBeFalse();
|
||||
}
|
||||
|
|
@ -346,7 +346,7 @@ public class TokenRequestValidation_Valid
|
|||
{"device_code", Guid.NewGuid().ToString()}
|
||||
};
|
||||
|
||||
var result = await validator.ValidateRequestAsync(parameters, client.ToValidationResult());
|
||||
var result = await validator.ValidateRequestAsync(parameters, client.ToValidationResult(), _ct);
|
||||
result.IsError.ShouldBeFalse();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue