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

## Abblix\.Oidc\.Server\.Features\.JwtBearer Namespace

| Classes | |
| :--- | :--- |
| [DistributedJwtReplayCache](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Features.JwtBearer.DistributedJwtReplayCache 'Abblix\.Oidc\.Server\.Features\.JwtBearer\.DistributedJwtReplayCache') | Backward\-compat adapter from the legacy two\-step [IJwtReplayCache](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Features.JwtBearer.IJwtReplayCache 'Abblix\.Oidc\.Server\.Features\.JwtBearer\.IJwtReplayCache') shape onto the canonical single\-call [TryAddAsync\(string, Nullable&lt;DateTimeOffset&gt;\)](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Features.ReplayPrevention.IJwtReplayCache#Abblix.Oidc.Server.Features.ReplayPrevention.IJwtReplayCache.TryAddAsync(string,System.Nullable_System.DateTimeOffset_) 'Abblix\.Oidc\.Server\.Features\.ReplayPrevention\.IJwtReplayCache\.TryAddAsync\(string, System\.Nullable\<System\.DateTimeOffset\>\)')\. Delegates via composition rather than inheritance so the deprecated contract stays type\-isolated from the canonical one\. |
| [JwtBearerIssuerProvider](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Features.JwtBearer.JwtBearerIssuerProvider 'Abblix\.Oidc\.Server\.Features\.JwtBearer\.JwtBearerIssuerProvider') | Default implementation of [IJwtBearerIssuerProvider](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Features.JwtBearer.IJwtBearerIssuerProvider 'Abblix\.Oidc\.Server\.Features\.JwtBearer\.IJwtBearerIssuerProvider') that loads trusted issuers from [JwtBearer](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Common.Configuration.OidcOptions#Abblix.Oidc.Server.Common.Configuration.OidcOptions.JwtBearer 'Abblix\.Oidc\.Server\.Common\.Configuration\.OidcOptions\.JwtBearer') configuration, fetches JWKS with SSRF protection, and provides JWT replay protection\. |

| Interfaces | |
| :--- | :--- |
| [IJwtBearerIssuerProvider](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Features.JwtBearer.IJwtBearerIssuerProvider 'Abblix\.Oidc\.Server\.Features\.JwtBearer\.IJwtBearerIssuerProvider') | Provides comprehensive JWT Bearer grant type \(RFC 7523\) functionality including issuer management, key resolution, and replay protection\. |
| [IJwtReplayCache](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Features.JwtBearer.IJwtReplayCache 'Abblix\.Oidc\.Server\.Features\.JwtBearer\.IJwtReplayCache') | Legacy two\-step replay\-cache contract: a separate [IsReplayedAsync\(string\)](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Features.JwtBearer.IJwtReplayCache#Abblix.Oidc.Server.Features.JwtBearer.IJwtReplayCache.IsReplayedAsync(string) 'Abblix\.Oidc\.Server\.Features\.JwtBearer\.IJwtReplayCache\.IsReplayedAsync\(string\)') read followed by a [MarkAsUsedAsync\(string, Nullable&lt;DateTimeOffset&gt;\)](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Features.JwtBearer.IJwtReplayCache#Abblix.Oidc.Server.Features.JwtBearer.IJwtReplayCache.MarkAsUsedAsync(string,System.Nullable_System.DateTimeOffset_) 'Abblix\.Oidc\.Server\.Features\.JwtBearer\.IJwtReplayCache\.MarkAsUsedAsync\(string, System\.Nullable\<System\.DateTimeOffset\>\)') write\. The shape leaks a read\-then\-write race window to concurrent presenters of the same jti\. |
