Skip to content

Commit fc8a738

Browse files
authored
Optimize the token revocation process in the Entity Framework 6.x/Entity Framework Core stores
1 parent 7267fa0 commit fc8a738

File tree

2 files changed

+9
-0
lines changed

2 files changed

+9
-0
lines changed

src/OpenIddict.EntityFramework/Stores/OpenIddictEntityFrameworkTokenStore.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -752,6 +752,7 @@ public virtual async ValueTask<long> RevokeByApplicationIdAsync(string identifie
752752
.Include(token => token.Application)
753753
.Include(token => token.Authorization)
754754
where token.Application!.Id!.Equals(key)
755+
where token.Status != Statuses.Revoked
755756
select token).ToListAsync(cancellationToken))
756757
{
757758
token.Status = Statuses.Revoked;
@@ -802,6 +803,7 @@ public virtual async ValueTask<long> RevokeByAuthorizationIdAsync(string identif
802803
.Include(token => token.Application)
803804
.Include(token => token.Authorization)
804805
where token.Authorization!.Id!.Equals(key)
806+
where token.Status != Statuses.Revoked
805807
select token).ToListAsync(cancellationToken))
806808
{
807809
token.Status = Statuses.Revoked;
@@ -851,6 +853,7 @@ public virtual async ValueTask<long> RevokeBySubjectAsync(string subject, Cancel
851853
.Include(token => token.Application)
852854
.Include(token => token.Authorization)
853855
where token.Subject == subject
856+
where token.Status != Statuses.Revoked
854857
select token).ToListAsync(cancellationToken))
855858
{
856859
token.Status = Statuses.Revoked;

src/OpenIddict.EntityFrameworkCore/Stores/OpenIddictEntityFrameworkCoreTokenStore.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -859,6 +859,7 @@ public virtual async ValueTask<long> RevokeByApplicationIdAsync(string identifie
859859
return await (
860860
from token in context.Set<TToken>()
861861
where token.Application!.Id!.Equals(key)
862+
where token.Status != Statuses.Revoked
862863
select token).ExecuteUpdateAsync(entity => entity.SetProperty(
863864
token => token.Status, Statuses.Revoked), cancellationToken);
864865

@@ -882,6 +883,7 @@ from token in context.Set<TToken>()
882883
.AsTracking()
883884
join application in context.Set<TApplication>().AsTracking() on token.Application!.Id equals application.Id
884885
where application.Id!.Equals(key)
886+
where token.Status != Statuses.Revoked
885887
select token).ToListAsync(cancellationToken))
886888
{
887889
token.Status = Statuses.Revoked;
@@ -930,6 +932,7 @@ public virtual async ValueTask<long> RevokeByAuthorizationIdAsync(string identif
930932
return await (
931933
from token in context.Set<TToken>()
932934
where token.Authorization!.Id!.Equals(key)
935+
where token.Status != Statuses.Revoked
933936
select token).ExecuteUpdateAsync(entity => entity.SetProperty(
934937
token => token.Status, Statuses.Revoked), cancellationToken);
935938

@@ -953,6 +956,7 @@ from token in context.Set<TToken>()
953956
.AsTracking()
954957
join authorization in context.Set<TAuthorization>().AsTracking() on token.Authorization!.Id equals authorization.Id
955958
where authorization.Id!.Equals(key)
959+
where token.Status != Statuses.Revoked
956960
select token).ToListAsync(cancellationToken))
957961
{
958962
token.Status = Statuses.Revoked;
@@ -1000,6 +1004,7 @@ public virtual async ValueTask<long> RevokeBySubjectAsync(string subject, Cancel
10001004
return await (
10011005
from token in context.Set<TToken>()
10021006
where token.Subject == subject
1007+
where token.Status != Statuses.Revoked
10031008
select token).ExecuteUpdateAsync(entity => entity.SetProperty(
10041009
token => token.Status, Statuses.Revoked), cancellationToken);
10051010

@@ -1016,6 +1021,7 @@ from token in context.Set<TToken>()
10161021
.Include(token => token.Authorization)
10171022
.AsTracking()
10181023
where token.Subject == subject
1024+
where token.Status != Statuses.Revoked
10191025
select token).ToListAsync(cancellationToken))
10201026
{
10211027
token.Status = Statuses.Revoked;

0 commit comments

Comments
 (0)