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

## PushedAuthorizationHandler Class

Handles the processing of Pushed Authorization Requests \(PAR\) by validating the requests and then processing
them if valid\. This class acts as an intermediary between the validation and processing stages of the PAR workflow\.

```csharp
public class PushedAuthorizationHandler : Abblix.Oidc.Server.Endpoints.PushedAuthorization.Interfaces.IPushedAuthorizationHandler
```

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

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

## PushedAuthorizationHandler\(IAuthorizationRequestFetcher, IPushedAuthorizationRequestValidator, IPushedAuthorizationRequestProcessor\) Constructor {#Abblix.Oidc.Server.Endpoints.PushedAuthorization.PushedAuthorizationHandler.PushedAuthorizationHandler(Abblix.Oidc.Server.Endpoints.Authorization.RequestFetching.IAuthorizationRequestFetcher,Abblix.Oidc.Server.Endpoints.PushedAuthorization.Interfaces.IPushedAuthorizationRequestValidator,Abblix.Oidc.Server.Endpoints.PushedAuthorization.Interfaces.IPushedAuthorizationRequestProcessor)}

Handles the processing of Pushed Authorization Requests \(PAR\) by validating the requests and then processing
them if valid\. This class acts as an intermediary between the validation and processing stages of the PAR workflow\.

```csharp
public PushedAuthorizationHandler(Abblix.Oidc.Server.Endpoints.Authorization.RequestFetching.IAuthorizationRequestFetcher fetcher, Abblix.Oidc.Server.Endpoints.PushedAuthorization.Interfaces.IPushedAuthorizationRequestValidator validator, Abblix.Oidc.Server.Endpoints.PushedAuthorization.Interfaces.IPushedAuthorizationRequestProcessor processor);
```
#### Parameters

###### `fetcher` [IAuthorizationRequestFetcher](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Endpoints.Authorization.RequestFetching.IAuthorizationRequestFetcher 'Abblix\.Oidc\.Server\.Endpoints\.Authorization\.RequestFetching\.IAuthorizationRequestFetcher') {#Abblix.Oidc.Server.Endpoints.PushedAuthorization.PushedAuthorizationHandler.PushedAuthorizationHandler(Abblix.Oidc.Server.Endpoints.Authorization.RequestFetching.IAuthorizationRequestFetcher,Abblix.Oidc.Server.Endpoints.PushedAuthorization.Interfaces.IPushedAuthorizationRequestValidator,Abblix.Oidc.Server.Endpoints.PushedAuthorization.Interfaces.IPushedAuthorizationRequestProcessor).fetcher}

An instance of [IAuthorizationRequestFetcher](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Endpoints.Authorization.RequestFetching.IAuthorizationRequestFetcher 'Abblix\.Oidc\.Server\.Endpoints\.Authorization\.RequestFetching\.IAuthorizationRequestFetcher') used to resolve `request` /
`request_uri` JAR payloads before validation\.

###### `validator` [IPushedAuthorizationRequestValidator](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Endpoints.PushedAuthorization.Interfaces.IPushedAuthorizationRequestValidator 'Abblix\.Oidc\.Server\.Endpoints\.PushedAuthorization\.Interfaces\.IPushedAuthorizationRequestValidator') {#Abblix.Oidc.Server.Endpoints.PushedAuthorization.PushedAuthorizationHandler.PushedAuthorizationHandler(Abblix.Oidc.Server.Endpoints.Authorization.RequestFetching.IAuthorizationRequestFetcher,Abblix.Oidc.Server.Endpoints.PushedAuthorization.Interfaces.IPushedAuthorizationRequestValidator,Abblix.Oidc.Server.Endpoints.PushedAuthorization.Interfaces.IPushedAuthorizationRequestProcessor).validator}

An instance of [IPushedAuthorizationRequestValidator](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Endpoints.PushedAuthorization.Interfaces.IPushedAuthorizationRequestValidator 'Abblix\.Oidc\.Server\.Endpoints\.PushedAuthorization\.Interfaces\.IPushedAuthorizationRequestValidator') used for validating
            pushed authorization requests\.

###### `processor` [IPushedAuthorizationRequestProcessor](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Endpoints.PushedAuthorization.Interfaces.IPushedAuthorizationRequestProcessor 'Abblix\.Oidc\.Server\.Endpoints\.PushedAuthorization\.Interfaces\.IPushedAuthorizationRequestProcessor') {#Abblix.Oidc.Server.Endpoints.PushedAuthorization.PushedAuthorizationHandler.PushedAuthorizationHandler(Abblix.Oidc.Server.Endpoints.Authorization.RequestFetching.IAuthorizationRequestFetcher,Abblix.Oidc.Server.Endpoints.PushedAuthorization.Interfaces.IPushedAuthorizationRequestValidator,Abblix.Oidc.Server.Endpoints.PushedAuthorization.Interfaces.IPushedAuthorizationRequestProcessor).processor}

An instance of [IPushedAuthorizationRequestProcessor](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Endpoints.PushedAuthorization.Interfaces.IPushedAuthorizationRequestProcessor 'Abblix\.Oidc\.Server\.Endpoints\.PushedAuthorization\.Interfaces\.IPushedAuthorizationRequestProcessor') used for processing
            validated authorization requests\.
### Methods

## PushedAuthorizationHandler\.HandleAsync\(AuthorizationRequest, ClientRequest\) Method {#Abblix.Oidc.Server.Endpoints.PushedAuthorization.PushedAuthorizationHandler.HandleAsync(Abblix.Oidc.Server.Model.AuthorizationRequest,Abblix.Oidc.Server.Model.ClientRequest)}

Asynchronously handles a pushed authorization request by first validating it and then processing it if
the validation is successful\.

```csharp
public System.Threading.Tasks.Task<Abblix.Oidc.Server.Endpoints.Authorization.Interfaces.AuthorizationResponse> HandleAsync(Abblix.Oidc.Server.Model.AuthorizationRequest authorizationRequest, Abblix.Oidc.Server.Model.ClientRequest clientRequest);
```
#### Parameters

###### `authorizationRequest` [AuthorizationRequest](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Model.AuthorizationRequest 'Abblix\.Oidc\.Server\.Model\.AuthorizationRequest') {#Abblix.Oidc.Server.Endpoints.PushedAuthorization.PushedAuthorizationHandler.HandleAsync(Abblix.Oidc.Server.Model.AuthorizationRequest,Abblix.Oidc.Server.Model.ClientRequest).authorizationRequest}

The authorization request details as received from the client\.

###### `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.PushedAuthorization.PushedAuthorizationHandler.HandleAsync(Abblix.Oidc.Server.Model.AuthorizationRequest,Abblix.Oidc.Server.Model.ClientRequest).clientRequest}

Additional client request information that may be needed for contextual validation\.

Implements [HandleAsync\(AuthorizationRequest, ClientRequest\)](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Endpoints.PushedAuthorization.Interfaces.IPushedAuthorizationHandler#Abblix.Oidc.Server.Endpoints.PushedAuthorization.Interfaces.IPushedAuthorizationHandler.HandleAsync(Abblix.Oidc.Server.Model.AuthorizationRequest,Abblix.Oidc.Server.Model.ClientRequest) 'Abblix\.Oidc\.Server\.Endpoints\.PushedAuthorization\.Interfaces\.IPushedAuthorizationHandler\.HandleAsync\(Abblix\.Oidc\.Server\.Model\.AuthorizationRequest, 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')[AuthorizationResponse](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Endpoints.Authorization.Interfaces.AuthorizationResponse 'Abblix\.Oidc\.Server\.Endpoints\.Authorization\.Interfaces\.AuthorizationResponse')[&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') that upon completion yields an [AuthorizationResponse](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Endpoints.Authorization.Interfaces.AuthorizationResponse 'Abblix\.Oidc\.Server\.Endpoints\.Authorization\.Interfaces\.AuthorizationResponse'), which could be a
successful response with the request being processed or an error response if the validation fails\.

### Remarks
This method ensures that pushed authorization requests are thoroughly validated against the system's
criteria before proceeding with processing\. This validation includes, but is not limited to, verifying
the client's identity, the request's integrity, and its compliance with the system's policies\.
Successful validation leads to the processing of the request, which typically involves generating a request URI
or an error response in case of failure\.
