Browse Source

Removed IdentityResourceStore (not needed!)

pull/190/head
Alper Ebicoglu 8 years ago
parent
commit
f097e2a6f2
  1. 24
      src/Volo.Abp.IdentityServer.Domain/Volo/Abp/IdentityServer/ApiResources/ApiResources.cs
  2. 18
      src/Volo.Abp.IdentityServer.Domain/Volo/Abp/IdentityServer/IdentityResources/IIdentityResourceRepository.cs
  3. 50
      src/Volo.Abp.IdentityServer.Domain/Volo/Abp/IdentityServer/IdentityResources/IdentityResourceStore.cs
  4. 76
      src/Volo.Abp.IdentityServer.EntityFrameworkCore/Volo/Abp/IdentityServer/IdentityResourceRepository.cs
  5. 26
      test/Abp.IdentityServer.EntityFrameworkCore.Tests/Volo/Abp/IdentityServer/AbpIdentityServerTestDataBuilder.cs
  6. 1
      test/Abp.IdentityServer.EntityFrameworkCore.Tests/Volo/Abp/IdentityServer/Clients/PersistentGrant_Tests.cs

24
src/Volo.Abp.IdentityServer.Domain/Volo/Abp/IdentityServer/ApiResources/ApiResources.cs

@ -1,24 +0,0 @@
using System.Threading.Tasks;
using Volo.Abp.IdentityServer.IdentityResources;
namespace Volo.Abp.IdentityServer.ApiResources
{
public class ApiResources
{
public Task<IdentityResource[]> Resources { get; set; }
public Task<ApiResource[]> IdentityResources { get; set; }
public ApiResources()
{
}
public ApiResources(Task<IdentityResource[]> resources, Task<ApiResource[]> identityResources)
{
Resources = resources;
IdentityResources = identityResources;
}
}
}

18
src/Volo.Abp.IdentityServer.Domain/Volo/Abp/IdentityServer/IdentityResources/IIdentityResourceRepository.cs

@ -1,18 +0,0 @@
using System.Collections.Generic;
using System.Threading.Tasks;
using Volo.Abp.Domain.Repositories;
using ApiResource = Volo.Abp.IdentityServer.ApiResources.ApiResource;
namespace Volo.Abp.IdentityServer.IdentityResources
{
public interface IIdentityResourceRepository : IRepository<IdentityResource>
{
Task<List<IdentityResource>> FindIdentityResourcesByScopeAsync(string[] scopeNames);
Task<List<ApiResource>> FindApiResourcesByScopeAsync(string[] scopeNames);
Task<ApiResource> FindApiResourceAsync(string name);
Task<ApiResources.ApiResources> GetAllResourcesAsync();
}
}

50
src/Volo.Abp.IdentityServer.Domain/Volo/Abp/IdentityServer/IdentityResources/IdentityResourceStore.cs

@ -1,50 +0,0 @@
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using IdentityServer4.Models;
using IdentityServer4.Stores;
using Volo.Abp.DependencyInjection;
using Volo.Abp.ObjectMapping;
namespace Volo.Abp.IdentityServer.IdentityResources
{
public class IdentityResourceStore : IResourceStore, ITransientDependency
{
private readonly IIdentityResourceRepository _identityResourceRepository;
private readonly IObjectMapper _objectMapper;
public IdentityResourceStore(IIdentityResourceRepository identityResourceRepository, IObjectMapper objectMapper)
{
_identityResourceRepository = identityResourceRepository;
_objectMapper = objectMapper;
}
public virtual async Task<IEnumerable<IdentityServer4.Models.IdentityResource>> FindIdentityResourcesByScopeAsync(IEnumerable<string> scopeNames)
{
var results = await _identityResourceRepository.FindIdentityResourcesByScopeAsync(scopeNames.ToArray());
return _objectMapper.Map<List<IdentityResource>, List<IdentityServer4.Models.IdentityResource>>(results);
}
public virtual async Task<IEnumerable<ApiResource>> FindApiResourcesByScopeAsync(IEnumerable<string> scopeNames)
{
var results = await _identityResourceRepository.FindApiResourcesByScopeAsync(scopeNames.ToArray());
return results?.Select(x => _objectMapper.Map<ApiResources.ApiResource, ApiResource>(x));
}
public virtual async Task<ApiResource> FindApiResourceAsync(string name)
{
var result = await _identityResourceRepository.FindApiResourceAsync(name);
return _objectMapper.Map<ApiResources.ApiResource, ApiResource>(result);
}
public virtual async Task<Resources> GetAllResourcesAsync()
{
var result = await _identityResourceRepository.GetAllResourcesAsync();
return new Resources
(
result.Resources.Result.Select(y => _objectMapper.Map<IdentityResource, IdentityServer4.Models.IdentityResource>(y)),
result.IdentityResources.Result.Select(x => _objectMapper.Map<ApiResources.ApiResource, ApiResource>(x))
);
}
}
}

76
src/Volo.Abp.IdentityServer.EntityFrameworkCore/Volo/Abp/IdentityServer/IdentityResourceRepository.cs

@ -1,76 +0,0 @@
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.EntityFrameworkCore;
using Volo.Abp.Domain.Repositories.EntityFrameworkCore;
using Volo.Abp.EntityFrameworkCore;
using Volo.Abp.IdentityServer.EntityFrameworkCore;
using Volo.Abp.IdentityServer.IdentityResources;
using ApiResource = Volo.Abp.IdentityServer.ApiResources.ApiResource;
using IdentityResource = Volo.Abp.IdentityServer.IdentityResources.IdentityResource;
namespace Volo.Abp.IdentityServer
{
public class IdentityResourceRepository : EfCoreRepository<IdentityServerDbContext, IdentityResource>, IIdentityResourceRepository
{
public IdentityResourceRepository(IDbContextProvider<IdentityServerDbContext> dbContextProvider) : base(dbContextProvider)
{
}
public Task<List<IdentityResource>> FindIdentityResourcesByScopeAsync(string[] scopeNames)
{
var query = from identityResource in DbSet.Include(x => x.UserClaims)
where scopeNames.Contains(identityResource.Name)
select identityResource;
return query.ToListAsync();
}
public Task<List<ApiResource>> FindApiResourcesByScopeAsync(string[] scopeNames)
{
var names = scopeNames.ToArray();
var query = from api in DbContext.ApiResources
where api.Scopes.Any(x => names.Contains(x.Name))
select api;
var apis = query
.Include(x => x.Secrets)
.Include(x => x.Scopes)
.ThenInclude(s => s.UserClaims)
.Include(x => x.UserClaims);
return apis.ToListAsync();
}
public Task<ApiResource> FindApiResourceAsync(string name)
{
var query = from apiResource in DbContext.ApiResources
where apiResource.Name == name
select apiResource;
var apis = query
.Include(x => x.Secrets)
.Include(x => x.Scopes)
.ThenInclude(s => s.UserClaims)
.Include(x => x.UserClaims);
return apis.FirstOrDefaultAsync();
}
public Task<ApiResources.ApiResources> GetAllResourcesAsync()
{
var identity = DbContext.IdentityResources
.Include(x => x.UserClaims);
var apis = DbContext.ApiResources
.Include(x => x.Secrets)
.Include(x => x.Scopes)
.ThenInclude(s => s.UserClaims)
.Include(x => x.UserClaims);
return Task.FromResult(new ApiResources.ApiResources(identity.ToArrayAsync(), apis.ToArrayAsync()));
}
}
}

26
test/Abp.IdentityServer.EntityFrameworkCore.Tests/Volo/Abp/IdentityServer/AbpIdentityServerTestDataBuilder.cs

@ -4,7 +4,6 @@ using Volo.Abp.Guids;
using Volo.Abp.IdentityServer.ApiResources;
using Volo.Abp.IdentityServer.Clients;
using Volo.Abp.IdentityServer.Grants;
using Volo.Abp.IdentityServer.IdentityResources;
namespace Volo.Abp.IdentityServer
{
@ -13,20 +12,17 @@ namespace Volo.Abp.IdentityServer
private readonly IGuidGenerator _guidGenerator;
private readonly IClientRepository _clientRepository;
private readonly IPersistentGrantRepository _persistentGrantRepository;
private readonly IIdentityResourceRepository _identityResourceRepository;
private readonly IApiResourceRepository _apiResourceRepository;
public AbpIdentityServerTestDataBuilder(
IClientRepository clientRepository,
IGuidGenerator guidGenerator,
IPersistentGrantRepository persistentGrantRepository,
IIdentityResourceRepository identityResourceRepository,
IApiResourceRepository apiResourceRepository)
{
_clientRepository = clientRepository;
_guidGenerator = guidGenerator;
_persistentGrantRepository = persistentGrantRepository;
_identityResourceRepository = identityResourceRepository;
_apiResourceRepository = apiResourceRepository;
}
@ -35,7 +31,6 @@ namespace Volo.Abp.IdentityServer
AddClients();
AddPersistentGrants();
AddApiResources();
AddIdentityResources();
}
private void AddClients()
@ -124,26 +119,5 @@ namespace Volo.Abp.IdentityServer
}
});
}
private void AddIdentityResources()
{
_identityResourceRepository.Insert(new IdentityResource(_guidGenerator.Create())
{
Enabled = true,
Description = "Test-Identity-Resource-Description-1",
DisplayName = "Test-Identity-Resource-DisplayName-1",
Name = "Test-Identity-Resource-Name-1",
Required = true,
ShowInDiscoveryDocument = true,
Emphasize = true,
UserClaims = new List<IdentityClaim>
{
new IdentityClaim(_guidGenerator.Create())
{
Type = "Test-Identity-Resource-1-IdentityClaim-Type-1"
}
}
});
}
}
}

1
test/Abp.IdentityServer.EntityFrameworkCore.Tests/Volo/Abp/IdentityServer/Clients/PersistentGrant_Tests.cs

@ -126,6 +126,5 @@ namespace Volo.Abp.IdentityServer.Clients
persistedGrants.ShouldNotBe(null);
persistedGrants.Length.ShouldBe(0);
}
}
}

Loading…
Cancel
Save