Browse Source

Merge pull request #15472 from abpframework/auto-merge/rel-6-0/1675

Merge branch rel-7.0 with rel-6.0
pull/15477/head
maliming 4 years ago
committed by GitHub
parent
commit
017338670d
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 5
      modules/openiddict/src/Volo.Abp.OpenIddict.Domain/Volo/Abp/OpenIddict/Authorizations/AbpOpenIddictAuthorizationStore.cs
  2. 2
      modules/openiddict/src/Volo.Abp.OpenIddict.Domain/Volo/Abp/OpenIddict/Tokens/IOpenIddictTokenRepository.cs
  3. 13
      modules/openiddict/src/Volo.Abp.OpenIddict.EntityFrameworkCore/Volo/Abp/OpenIddict/Tokens/EfCoreOpenIddictTokenRepository.cs
  4. 16
      modules/openiddict/src/Volo.Abp.OpenIddict.MongoDB/Volo/Abp/OpenIddict/Tokens/MongoOpenIddictTokenRepository.cs
  5. 26
      modules/openiddict/test/Volo.Abp.OpenIddict.TestBase/Volo/Abp/OpenIddict/OpenIddictTokenRepository_Tests.cs

5
modules/openiddict/src/Volo.Abp.OpenIddict.Domain/Volo/Abp/OpenIddict/Authorizations/AbpOpenIddictAuthorizationStore.cs

@ -47,7 +47,7 @@ public class AbpOpenIddictAuthorizationStore : AbpOpenIddictStoreBase<IOpenIddic
Check.NotNull(authorization, nameof(authorization));
await Repository.InsertAsync(authorization.ToEntity(), autoSave: true, cancellationToken: cancellationToken);
authorization = (await Repository.FindAsync(authorization.Id, cancellationToken: cancellationToken)).ToModel();
}
@ -290,6 +290,7 @@ public class AbpOpenIddictAuthorizationStore : AbpOpenIddictStoreBase<IOpenIddic
break;
}
await TokenRepository.DeleteManyByAuthorizationIdsAsync(authorizations.Select(x => x.Id).ToArray(), cancellationToken: cancellationToken);
await Repository.DeleteManyAsync(authorizations, autoSave: true, cancellationToken: cancellationToken);
await uow.CompleteAsync(cancellationToken);
}
@ -399,7 +400,7 @@ public class AbpOpenIddictAuthorizationStore : AbpOpenIddictStoreBase<IOpenIddic
var entity = await Repository.GetAsync(authorization.Id, cancellationToken: cancellationToken);
await Repository.UpdateAsync(authorization.ToEntity(entity), autoSave: true, cancellationToken: cancellationToken);
authorization = (await Repository.FindAsync(entity.Id, cancellationToken: cancellationToken)).ToModel();
}
}

2
modules/openiddict/src/Volo.Abp.OpenIddict.Domain/Volo/Abp/OpenIddict/Tokens/IOpenIddictTokenRepository.cs

@ -12,6 +12,8 @@ public interface IOpenIddictTokenRepository : IBasicRepository<OpenIddictToken,
Task DeleteManyByAuthorizationIdAsync(Guid authorizationId, bool autoSave = false, CancellationToken cancellationToken = default);
Task DeleteManyByAuthorizationIdsAsync(Guid[] authorizationIds, bool autoSave = false, CancellationToken cancellationToken = default);
Task<List<OpenIddictToken>> FindAsync(string subject, Guid client, CancellationToken cancellationToken = default);
Task<List<OpenIddictToken>> FindAsync(string subject, Guid client, string status, CancellationToken cancellationToken = default);

13
modules/openiddict/src/Volo.Abp.OpenIddict.EntityFrameworkCore/Volo/Abp/OpenIddict/Tokens/EfCoreOpenIddictTokenRepository.cs

@ -20,7 +20,7 @@ public class EfCoreOpenIddictTokenRepository : EfCoreRepository<IOpenIddictDbCon
}
public async Task DeleteManyByApplicationIdAsync(Guid applicationId, bool autoSave = false, CancellationToken cancellationToken = default)
public virtual async Task DeleteManyByApplicationIdAsync(Guid applicationId, bool autoSave = false, CancellationToken cancellationToken = default)
{
var tokens = await (await GetDbSetAsync())
.Where(x => x.ApplicationId == applicationId)
@ -29,7 +29,7 @@ public class EfCoreOpenIddictTokenRepository : EfCoreRepository<IOpenIddictDbCon
await DeleteManyAsync(tokens, autoSave, cancellationToken);
}
public async Task DeleteManyByAuthorizationIdAsync(Guid authorizationId, bool autoSave = false, CancellationToken cancellationToken = default)
public virtual async Task DeleteManyByAuthorizationIdAsync(Guid authorizationId, bool autoSave = false, CancellationToken cancellationToken = default)
{
var tokens = await (await GetDbSetAsync())
.Where(x => x.AuthorizationId == authorizationId)
@ -38,6 +38,15 @@ public class EfCoreOpenIddictTokenRepository : EfCoreRepository<IOpenIddictDbCon
await DeleteManyAsync(tokens, autoSave, GetCancellationToken(cancellationToken));
}
public virtual async Task DeleteManyByAuthorizationIdsAsync(Guid[] authorizationIds, bool autoSave = false, CancellationToken cancellationToken = default)
{
var tokens = await (await GetDbSetAsync())
.Where(x => x.AuthorizationId != null && authorizationIds.Contains(x.AuthorizationId.Value))
.ToListAsync(GetCancellationToken(cancellationToken));
await DeleteManyAsync(tokens, autoSave, GetCancellationToken(cancellationToken));
}
public virtual async Task<List<OpenIddictToken>> FindAsync(string subject, Guid client, CancellationToken cancellationToken = default)
{
return await (await GetQueryableAsync()).Where(x => x.Subject == subject && x.ApplicationId == client).ToListAsync(GetCancellationToken(cancellationToken));

16
modules/openiddict/src/Volo.Abp.OpenIddict.MongoDB/Volo/Abp/OpenIddict/Tokens/MongoOpenIddictTokenRepository.cs

@ -19,8 +19,7 @@ public class MongoOpenIddictTokenRepository : MongoDbRepository<OpenIddictMongoD
{
}
public async Task DeleteManyByApplicationIdAsync(Guid applicationId, bool autoSave = false,
CancellationToken cancellationToken = default)
public virtual async Task DeleteManyByApplicationIdAsync(Guid applicationId, bool autoSave = false, CancellationToken cancellationToken = default)
{
var tokens = await (await GetMongoQueryableAsync(GetCancellationToken(cancellationToken)))
.Where(x => x.ApplicationId == applicationId)
@ -29,7 +28,7 @@ public class MongoOpenIddictTokenRepository : MongoDbRepository<OpenIddictMongoD
await DeleteManyAsync(tokens, autoSave, cancellationToken);
}
public async Task DeleteManyByAuthorizationIdAsync(Guid authorizationId, bool autoSave = false,
public virtual async Task DeleteManyByAuthorizationIdAsync(Guid authorizationId, bool autoSave = false,
CancellationToken cancellationToken = default)
{
var tokens = await (await GetMongoQueryableAsync(GetCancellationToken(cancellationToken)))
@ -39,6 +38,15 @@ public class MongoOpenIddictTokenRepository : MongoDbRepository<OpenIddictMongoD
await DeleteManyAsync(tokens, autoSave, GetCancellationToken(cancellationToken));
}
public virtual async Task DeleteManyByAuthorizationIdsAsync(Guid[] authorizationIds, bool autoSave = false, CancellationToken cancellationToken = default)
{
var tokens = await (await GetMongoQueryableAsync(GetCancellationToken(cancellationToken)))
.Where(x => x.AuthorizationId != null && authorizationIds.Contains(x.AuthorizationId.Value))
.ToListAsync(GetCancellationToken(cancellationToken));
await DeleteManyAsync(tokens, autoSave, GetCancellationToken(cancellationToken));
}
public virtual async Task<List<OpenIddictToken>> FindAsync(string subject, Guid client, CancellationToken cancellationToken = default)
{
return await Queryable.Where((await GetMongoQueryableAsync(cancellationToken)), x => x.Subject == subject && x.ApplicationId == client)
@ -100,7 +108,7 @@ public class MongoOpenIddictTokenRepository : MongoDbRepository<OpenIddictMongoD
.ToListAsync(GetCancellationToken(cancellationToken));
}
public async Task<List<OpenIddictToken>> GetPruneListAsync(DateTime date, int count, CancellationToken cancellationToken = default)
public virtual async Task<List<OpenIddictToken>> GetPruneListAsync(DateTime date, int count, CancellationToken cancellationToken = default)
{
var authorizationIds = await (await GetMongoQueryableAsync<OpenIddictAuthorization>(cancellationToken))
.Where(x => x.Status != OpenIddictConstants.Statuses.Valid)

26
modules/openiddict/test/Volo.Abp.OpenIddict.TestBase/Volo/Abp/OpenIddict/OpenIddictTokenRepository_Tests.cs

@ -25,17 +25,35 @@ public abstract class OpenIddictTokenRepository_Tests<TStartupModule> : OpenIddi
{
await _tokenRepository.DeleteManyByApplicationIdAsync(new Guid());
(await _tokenRepository.GetCountAsync()).ShouldBe(2);
await _tokenRepository.DeleteManyByApplicationIdAsync(_testData.App1Id);
(await _tokenRepository.GetCountAsync()).ShouldBe(1);
}
[Fact]
public async Task DeleteManyByAuthorizationIdsAsync()
{
await _tokenRepository.DeleteManyByAuthorizationIdsAsync(new Guid[]
{
Guid.NewGuid(),
Guid.NewGuid(),
});
(await _tokenRepository.GetCountAsync()).ShouldBe(2);
await _tokenRepository.DeleteManyByAuthorizationIdsAsync(new Guid[]
{
_testData.Authorization1Id,
_testData.Authorization2Id
});
(await _tokenRepository.GetCountAsync()).ShouldBe(0);
}
[Fact]
public async Task DeleteManyByAuthorizationIdAsync()
{
await _tokenRepository.DeleteManyByAuthorizationIdAsync(new Guid());
(await _tokenRepository.GetCountAsync()).ShouldBe(2);
await _tokenRepository.DeleteManyByAuthorizationIdAsync(_testData.Authorization1Id);
(await _tokenRepository.GetCountAsync()).ShouldBe(1);
}
@ -87,7 +105,7 @@ public abstract class OpenIddictTokenRepository_Tests<TStartupModule> : OpenIddi
{
(await _tokenRepository.FindBySubjectAsync("TestSubject1")).Count.ShouldBe(1);
}
[Fact]
public async Task ListAsync()
{
@ -101,4 +119,4 @@ public abstract class OpenIddictTokenRepository_Tests<TStartupModule> : OpenIddi
var threshold = DateTime.UtcNow - TimeSpan.FromDays(14);
(await _tokenRepository.GetPruneListAsync(threshold, int.MaxValue)).Count.ShouldBe(1);
}
}
}

Loading…
Cancel
Save