#### [Abblix\.Oidc\.Server](https://www.abblix.com/en/docs/api/abblix-oidc-server 'index')
### [Abblix\.Oidc\.Server\.Endpoints\.Revocation](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Endpoints.Revocation 'Abblix\.Oidc\.Server\.Endpoints\.Revocation')

## RevocationRequestValidator Class

Validates revocation requests in accordance with OAuth 2\.0 standards\.
This class is responsible for ensuring that revocation requests meet the criteria specified in
OAuth 2\.0 Token Revocation \(RFC 7009\)\.
It validates the authenticity of the client and the token involved in the request\.

```csharp
public class RevocationRequestValidator : Abblix.Oidc.Server.Endpoints.Revocation.Interfaces.IRevocationRequestValidator
```

Inheritance [System\.Object](https://learn.microsoft.com/en-us/dotnet/api/system.object 'System\.Object') → RevocationRequestValidator

Implements [IRevocationRequestValidator](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Endpoints.Revocation.Interfaces.IRevocationRequestValidator 'Abblix\.Oidc\.Server\.Endpoints\.Revocation\.Interfaces\.IRevocationRequestValidator')
### Constructors

## RevocationRequestValidator\(ILogger\<RevocationRequestValidator\>, IClientAuthenticator, IAuthServiceJwtValidator\) Constructor {#Abblix.Oidc.Server.Endpoints.Revocation.RevocationRequestValidator.RevocationRequestValidator(Microsoft.Extensions.Logging.ILogger_Abblix.Oidc.Server.Endpoints.Revocation.RevocationRequestValidator_,Abblix.Oidc.Server.Features.ClientAuthentication.IClientAuthenticator,Abblix.Oidc.Server.Features.Tokens.Validation.IAuthServiceJwtValidator)}

Validates revocation requests in accordance with OAuth 2\.0 standards\.
This class is responsible for ensuring that revocation requests meet the criteria specified in
OAuth 2\.0 Token Revocation \(RFC 7009\)\.
It validates the authenticity of the client and the token involved in the request\.

```csharp
public RevocationRequestValidator(Microsoft.Extensions.Logging.ILogger<Abblix.Oidc.Server.Endpoints.Revocation.RevocationRequestValidator> logger, Abblix.Oidc.Server.Features.ClientAuthentication.IClientAuthenticator clientAuthenticator, Abblix.Oidc.Server.Features.Tokens.Validation.IAuthServiceJwtValidator jwtValidator);
```
#### Parameters

###### `logger` [Microsoft\.Extensions\.Logging\.ILogger&lt;](https://learn.microsoft.com/en-us/dotnet/api/microsoft.extensions.logging.ilogger-1 'Microsoft\.Extensions\.Logging\.ILogger\`1')[RevocationRequestValidator](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Endpoints.Revocation.RevocationRequestValidator 'Abblix\.Oidc\.Server\.Endpoints\.Revocation\.RevocationRequestValidator')[&gt;](https://learn.microsoft.com/en-us/dotnet/api/microsoft.extensions.logging.ilogger-1 'Microsoft\.Extensions\.Logging\.ILogger\`1') {#Abblix.Oidc.Server.Endpoints.Revocation.RevocationRequestValidator.RevocationRequestValidator(Microsoft.Extensions.Logging.ILogger_Abblix.Oidc.Server.Endpoints.Revocation.RevocationRequestValidator_,Abblix.Oidc.Server.Features.ClientAuthentication.IClientAuthenticator,Abblix.Oidc.Server.Features.Tokens.Validation.IAuthServiceJwtValidator).logger}

Provides logging capabilities to record validation outcomes and errors\.

###### `clientAuthenticator` [IClientAuthenticator](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Features.ClientAuthentication.IClientAuthenticator 'Abblix\.Oidc\.Server\.Features\.ClientAuthentication\.IClientAuthenticator') {#Abblix.Oidc.Server.Endpoints.Revocation.RevocationRequestValidator.RevocationRequestValidator(Microsoft.Extensions.Logging.ILogger_Abblix.Oidc.Server.Endpoints.Revocation.RevocationRequestValidator_,Abblix.Oidc.Server.Features.ClientAuthentication.IClientAuthenticator,Abblix.Oidc.Server.Features.Tokens.Validation.IAuthServiceJwtValidator).clientAuthenticator}

The client request authenticator to be used in the validation process\. Ensures that the client sending the
revocation request is authenticated and authorized to revoke tokens\.

###### `jwtValidator` [IAuthServiceJwtValidator](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Features.Tokens.Validation.IAuthServiceJwtValidator 'Abblix\.Oidc\.Server\.Features\.Tokens\.Validation\.IAuthServiceJwtValidator') {#Abblix.Oidc.Server.Endpoints.Revocation.RevocationRequestValidator.RevocationRequestValidator(Microsoft.Extensions.Logging.ILogger_Abblix.Oidc.Server.Endpoints.Revocation.RevocationRequestValidator_,Abblix.Oidc.Server.Features.ClientAuthentication.IClientAuthenticator,Abblix.Oidc.Server.Features.Tokens.Validation.IAuthServiceJwtValidator).jwtValidator}

The JWT validator to be used for validating the token included in the revocation request\. Ensures that
the token is valid and that it belongs to the client requesting revocation\.
### Methods

## RevocationRequestValidator\.ValidateAsync\(RevocationRequest, ClientRequest\) Method {#Abblix.Oidc.Server.Endpoints.Revocation.RevocationRequestValidator.ValidateAsync(Abblix.Oidc.Server.Model.RevocationRequest,Abblix.Oidc.Server.Model.ClientRequest)}

Asynchronously validates a revocation request against the OAuth 2\.0 revocation request specifications\.
It checks the client's credentials and the validity of the token to be revoked\. The validation ensures
that the token belongs to the authenticated client and is valid as per JWT standards\.

```csharp
public System.Threading.Tasks.Task<Abblix.Utils.Result<Abblix.Oidc.Server.Endpoints.Revocation.Interfaces.ValidRevocationRequest,Abblix.Oidc.Server.Common.OidcError>> ValidateAsync(Abblix.Oidc.Server.Model.RevocationRequest revocationRequest, Abblix.Oidc.Server.Model.ClientRequest clientRequest);
```
#### Parameters

###### `revocationRequest` [RevocationRequest](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Model.RevocationRequest 'Abblix\.Oidc\.Server\.Model\.RevocationRequest') {#Abblix.Oidc.Server.Endpoints.Revocation.RevocationRequestValidator.ValidateAsync(Abblix.Oidc.Server.Model.RevocationRequest,Abblix.Oidc.Server.Model.ClientRequest).revocationRequest}

The revocation request to be validated\. Contains the token to be revoked and client information\.

###### `clientRequest` [ClientRequest](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Model.ClientRequest 'Abblix\.Oidc\.Server\.Model\.ClientRequest') {#Abblix.Oidc.Server.Endpoints.Revocation.RevocationRequestValidator.ValidateAsync(Abblix.Oidc.Server.Model.RevocationRequest,Abblix.Oidc.Server.Model.ClientRequest).clientRequest}

Additional client request information for contextual validation\.

Implements [ValidateAsync\(RevocationRequest, ClientRequest\)](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Endpoints.Revocation.Interfaces.IRevocationRequestValidator#Abblix.Oidc.Server.Endpoints.Revocation.Interfaces.IRevocationRequestValidator.ValidateAsync(Abblix.Oidc.Server.Model.RevocationRequest,Abblix.Oidc.Server.Model.ClientRequest) 'Abblix\.Oidc\.Server\.Endpoints\.Revocation\.Interfaces\.IRevocationRequestValidator\.ValidateAsync\(Abblix\.Oidc\.Server\.Model\.RevocationRequest, Abblix\.Oidc\.Server\.Model\.ClientRequest\)')

#### Returns
[System\.Threading\.Tasks\.Task&lt;](https://learn.microsoft.com/en-us/dotnet/api/system.threading.tasks.task-1 'System\.Threading\.Tasks\.Task\`1')[Abblix\.Utils\.Result&lt;](https://learn.microsoft.com/en-us/dotnet/api/abblix.utils.result-2 'Abblix\.Utils\.Result\`2')[ValidRevocationRequest](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Endpoints.Revocation.Interfaces.ValidRevocationRequest 'Abblix\.Oidc\.Server\.Endpoints\.Revocation\.Interfaces\.ValidRevocationRequest')[,](https://learn.microsoft.com/en-us/dotnet/api/abblix.utils.result-2 'Abblix\.Utils\.Result\`2')[OidcError](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Common.OidcError 'Abblix\.Oidc\.Server\.Common\.OidcError')[&gt;](https://learn.microsoft.com/en-us/dotnet/api/abblix.utils.result-2 'Abblix\.Utils\.Result\`2')[&gt;](https://learn.microsoft.com/en-us/dotnet/api/system.threading.tasks.task-1 'System\.Threading\.Tasks\.Task\`1')  
A [System\.Threading\.Tasks\.Task](https://learn.microsoft.com/en-us/dotnet/api/system.threading.tasks.task 'System\.Threading\.Tasks\.Task') representing the asynchronous operation, which upon completion will yield a
[Abblix\.Utils\.Result&lt;&gt;](https://learn.microsoft.com/en-us/dotnet/api/abblix.utils.result-2 'Abblix\.Utils\.Result\`2')\. The result indicates whether the request is valid or
contains any errors\.

### Remarks
This method follows the OAuth 2\.0 revocation flow, ensuring that the token being revoked belongs to
the authenticated client, protecting against cross\-client token revocation\. In case of validation failure,
it logs a warning with the specific cause\.
