|
|
|
@ -2,11 +2,13 @@
|
|
|
|
|
using IdentityServer4.Models;
|
|
|
|
|
using Volo.Abp.DependencyInjection;
|
|
|
|
|
using Volo.Abp.Guids;
|
|
|
|
|
using Volo.Abp.IdentityServer.ApiResources;
|
|
|
|
|
using Volo.Abp.IdentityServer.ApiScopes;
|
|
|
|
|
using Volo.Abp.IdentityServer.Clients;
|
|
|
|
|
using Volo.Abp.IdentityServer.Grants;
|
|
|
|
|
using Volo.Abp.IdentityServer.IdentityResources;
|
|
|
|
|
using ApiResource = Volo.Abp.IdentityServer.ApiScopes.ApiResource;
|
|
|
|
|
using ApiResource = Volo.Abp.IdentityServer.ApiResources.ApiResource;
|
|
|
|
|
using ApiScope = Volo.Abp.IdentityServer.ApiScopes.ApiScope;
|
|
|
|
|
using Client = Volo.Abp.IdentityServer.Clients.Client;
|
|
|
|
|
using IdentityResource = Volo.Abp.IdentityServer.IdentityResources.IdentityResource;
|
|
|
|
|
using PersistedGrant = Volo.Abp.IdentityServer.Grants.PersistedGrant;
|
|
|
|
@ -21,6 +23,7 @@ namespace Volo.Abp.IdentityServer
|
|
|
|
|
private readonly IClientRepository _clientRepository;
|
|
|
|
|
private readonly IPersistentGrantRepository _persistentGrantRepository;
|
|
|
|
|
private readonly IApiResourceRepository _apiResourceRepository;
|
|
|
|
|
private readonly IApiScopeRepository _apiScopeRepository;
|
|
|
|
|
private readonly IIdentityResourceRepository _identityResourceRepository;
|
|
|
|
|
|
|
|
|
|
public AbpIdentityServerTestDataBuilder(
|
|
|
|
@ -28,21 +31,64 @@ namespace Volo.Abp.IdentityServer
|
|
|
|
|
IGuidGenerator guidGenerator,
|
|
|
|
|
IPersistentGrantRepository persistentGrantRepository,
|
|
|
|
|
IApiResourceRepository apiResourceRepository,
|
|
|
|
|
IIdentityResourceRepository identityResourceRepository)
|
|
|
|
|
IIdentityResourceRepository identityResourceRepository,
|
|
|
|
|
IApiScopeRepository apiScopeRepository)
|
|
|
|
|
{
|
|
|
|
|
_clientRepository = clientRepository;
|
|
|
|
|
_guidGenerator = guidGenerator;
|
|
|
|
|
_persistentGrantRepository = persistentGrantRepository;
|
|
|
|
|
_apiResourceRepository = apiResourceRepository;
|
|
|
|
|
_identityResourceRepository = identityResourceRepository;
|
|
|
|
|
_apiScopeRepository = apiScopeRepository;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public async Task BuildAsync()
|
|
|
|
|
{
|
|
|
|
|
await AddClients();
|
|
|
|
|
await AddPersistentGrants();
|
|
|
|
|
await AddApiResources();
|
|
|
|
|
await AddApiScopes();
|
|
|
|
|
await AddIdentityResources();
|
|
|
|
|
await AddClients();
|
|
|
|
|
await AddPersistentGrants();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private async Task AddApiResources()
|
|
|
|
|
{
|
|
|
|
|
var apiResource = new ApiResource(_guidGenerator.Create(), "Test-ApiResource-Name-1")
|
|
|
|
|
{
|
|
|
|
|
Enabled = true,
|
|
|
|
|
Description = "Test-ApiResource-Description-1",
|
|
|
|
|
DisplayName = "Test-ApiResource-DisplayName-1"
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
apiResource.AddSecret("secret".Sha256());
|
|
|
|
|
apiResource.AddScope("Test-ApiResource-ApiScope-Name-1");
|
|
|
|
|
apiResource.AddScope("Test-ApiResource-ApiScope-DisplayName-1");
|
|
|
|
|
apiResource.AddUserClaim("Test-ApiResource-Claim-Type-1");
|
|
|
|
|
|
|
|
|
|
await _apiResourceRepository.InsertAsync(apiResource);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private async Task AddApiScopes()
|
|
|
|
|
{
|
|
|
|
|
var apiScope = new ApiScope(_guidGenerator.Create(), "Test-ApiScope-Name-1");
|
|
|
|
|
|
|
|
|
|
apiScope.AddUserClaim("Test-ApiScope-Claim-Type-1");
|
|
|
|
|
await _apiScopeRepository.InsertAsync(apiScope);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private async Task AddIdentityResources()
|
|
|
|
|
{
|
|
|
|
|
var identityResource = new IdentityResource(_guidGenerator.Create(), "Test-Identity-Resource-Name-1")
|
|
|
|
|
{
|
|
|
|
|
Description = "Test-Identity-Resource-Description-1",
|
|
|
|
|
DisplayName = "Test-Identity-Resource-DisplayName-1",
|
|
|
|
|
Required = true,
|
|
|
|
|
Emphasize = true
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
identityResource.AddUserClaim("Test-Identity-Resource-1-IdentityClaim-Type-1");
|
|
|
|
|
|
|
|
|
|
await _identityResourceRepository.InsertAsync(identityResource);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private async Task AddClients()
|
|
|
|
@ -54,7 +100,7 @@ namespace Volo.Abp.IdentityServer
|
|
|
|
|
|
|
|
|
|
client42.AddCorsOrigin("Origin1");
|
|
|
|
|
|
|
|
|
|
client42.AddScope("api1");
|
|
|
|
|
client42.AddScope("Test-ApiScope-Name-1");
|
|
|
|
|
|
|
|
|
|
await _clientRepository.InsertAsync(client42);
|
|
|
|
|
}
|
|
|
|
@ -98,36 +144,5 @@ namespace Volo.Abp.IdentityServer
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private async Task AddApiResources()
|
|
|
|
|
{
|
|
|
|
|
var apiResource = new ApiResource(_guidGenerator.Create(), "Test-ApiResource-Name-1")
|
|
|
|
|
{
|
|
|
|
|
Enabled = true,
|
|
|
|
|
Description = "Test-ApiResource-Description-1",
|
|
|
|
|
DisplayName = "Test-ApiResource-DisplayName-1"
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
apiResource.AddSecret("secret".Sha256());
|
|
|
|
|
apiResource.AddScope("Test-ApiResource-ApiScope-Name-1");
|
|
|
|
|
apiResource.AddScope("Test-ApiResource-ApiScope-DisplayName-1");
|
|
|
|
|
apiResource.AddUserClaim("Test-ApiResource-Claim-Type-1");
|
|
|
|
|
|
|
|
|
|
await _apiResourceRepository.InsertAsync(apiResource);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private async Task AddIdentityResources()
|
|
|
|
|
{
|
|
|
|
|
var identityResource = new IdentityResource(_guidGenerator.Create(), "Test-Identity-Resource-Name-1")
|
|
|
|
|
{
|
|
|
|
|
Description = "Test-Identity-Resource-Description-1",
|
|
|
|
|
DisplayName = "Test-Identity-Resource-DisplayName-1",
|
|
|
|
|
Required = true,
|
|
|
|
|
Emphasize = true
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
identityResource.AddUserClaim("Test-Identity-Resource-1-IdentityClaim-Type-1");
|
|
|
|
|
|
|
|
|
|
await _identityResourceRepository.InsertAsync(identityResource);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|