Browse Source

Optimize the token revocation process in the Entity Framework 6.x/Entity Framework Core stores

pull/2363/head
Maciej Jakubiak 7 months ago
committed by GitHub
parent
commit
fc8a73821b
No known key found for this signature in database GPG Key ID: B5690EEEBB952194
  1. 3
      src/OpenIddict.EntityFramework/Stores/OpenIddictEntityFrameworkTokenStore.cs
  2. 6
      src/OpenIddict.EntityFrameworkCore/Stores/OpenIddictEntityFrameworkCoreTokenStore.cs

3
src/OpenIddict.EntityFramework/Stores/OpenIddictEntityFrameworkTokenStore.cs

@ -752,6 +752,7 @@ public class OpenIddictEntityFrameworkTokenStore<
.Include(token => token.Application)
.Include(token => token.Authorization)
where token.Application!.Id!.Equals(key)
where token.Status != Statuses.Revoked
select token).ToListAsync(cancellationToken))
{
token.Status = Statuses.Revoked;
@ -802,6 +803,7 @@ public class OpenIddictEntityFrameworkTokenStore<
.Include(token => token.Application)
.Include(token => token.Authorization)
where token.Authorization!.Id!.Equals(key)
where token.Status != Statuses.Revoked
select token).ToListAsync(cancellationToken))
{
token.Status = Statuses.Revoked;
@ -851,6 +853,7 @@ public class OpenIddictEntityFrameworkTokenStore<
.Include(token => token.Application)
.Include(token => token.Authorization)
where token.Subject == subject
where token.Status != Statuses.Revoked
select token).ToListAsync(cancellationToken))
{
token.Status = Statuses.Revoked;

6
src/OpenIddict.EntityFrameworkCore/Stores/OpenIddictEntityFrameworkCoreTokenStore.cs

@ -859,6 +859,7 @@ public class OpenIddictEntityFrameworkCoreTokenStore<
return await (
from token in context.Set<TToken>()
where token.Application!.Id!.Equals(key)
where token.Status != Statuses.Revoked
select token).ExecuteUpdateAsync(entity => entity.SetProperty(
token => token.Status, Statuses.Revoked), cancellationToken);
@ -882,6 +883,7 @@ public class OpenIddictEntityFrameworkCoreTokenStore<
.AsTracking()
join application in context.Set<TApplication>().AsTracking() on token.Application!.Id equals application.Id
where application.Id!.Equals(key)
where token.Status != Statuses.Revoked
select token).ToListAsync(cancellationToken))
{
token.Status = Statuses.Revoked;
@ -930,6 +932,7 @@ public class OpenIddictEntityFrameworkCoreTokenStore<
return await (
from token in context.Set<TToken>()
where token.Authorization!.Id!.Equals(key)
where token.Status != Statuses.Revoked
select token).ExecuteUpdateAsync(entity => entity.SetProperty(
token => token.Status, Statuses.Revoked), cancellationToken);
@ -953,6 +956,7 @@ public class OpenIddictEntityFrameworkCoreTokenStore<
.AsTracking()
join authorization in context.Set<TAuthorization>().AsTracking() on token.Authorization!.Id equals authorization.Id
where authorization.Id!.Equals(key)
where token.Status != Statuses.Revoked
select token).ToListAsync(cancellationToken))
{
token.Status = Statuses.Revoked;
@ -1000,6 +1004,7 @@ public class OpenIddictEntityFrameworkCoreTokenStore<
return await (
from token in context.Set<TToken>()
where token.Subject == subject
where token.Status != Statuses.Revoked
select token).ExecuteUpdateAsync(entity => entity.SetProperty(
token => token.Status, Statuses.Revoked), cancellationToken);
@ -1016,6 +1021,7 @@ public class OpenIddictEntityFrameworkCoreTokenStore<
.Include(token => token.Authorization)
.AsTracking()
where token.Subject == subject
where token.Status != Statuses.Revoked
select token).ToListAsync(cancellationToken))
{
token.Status = Statuses.Revoked;

Loading…
Cancel
Save