Beispiel #1
0
 /// <summary>
 /// Gets API resources by API resource name.
 /// </summary>
 public virtual async Task <IEnumerable <IdentityServer4.Models.ApiResource> > FindApiResourcesByNameAsync(IEnumerable <string> apiResourceNames)
 {
     return(await GetCacheItemsAsync(
                ApiResourceCache,
                apiResourceNames,
                async keys => await ApiResourceRepository.FindByNameAsync(keys, includeDetails: true),
                (models, cacheKeyPrefix) => new List <IEnumerable <KeyValuePair <string, IdentityServer4.Models.ApiResource> > >
     {
         models.Select(x => new KeyValuePair <string, IdentityServer4.Models.ApiResource>(AddCachePrefix(x.Name, cacheKeyPrefix), x))
     }, ApiResourceNameCacheKeyPrefix));
 }
Beispiel #2
0
        public virtual async Task <Resources> GetAllResourcesAsync()
        {
            var identityResources = await IdentityResourceRepository.GetListAsync(includeDetails : true);

            var apiResources = await ApiResourceRepository.GetListAsync(includeDetails : true);

            return(new Resources(
                       ObjectMapper.Map <List <IdentityResource>, IdentityServer4.Models.IdentityResource[]>(identityResources),
                       ObjectMapper.Map <List <ApiResources.ApiResource>, ApiResource[]>(apiResources)
                       ));
        }
Beispiel #3
0
 /// <summary>
 /// Gets API resources by scope name.
 /// </summary>
 public virtual async Task <IEnumerable <IdentityServer4.Models.ApiResource> > FindApiResourcesByScopeNameAsync(IEnumerable <string> scopeNames)
 {
     return(await GetCacheItemsAsync <ApiResource, IdentityServer4.Models.ApiResource>(
                ApiResourceCache,
                scopeNames,
                async keys => await ApiResourceRepository.GetListByScopesAsync(keys, includeDetails: true),
                (models, cacheKeyPrefix) =>
     {
         return models
         .Select(model => model.Scopes.Select(scope => new KeyValuePair <string, IdentityServer4.Models.ApiResource>(AddCachePrefix(scope, cacheKeyPrefix), model)).ToList())
         .Where(scopes => scopes.Any()).Cast <IEnumerable <KeyValuePair <string, IdentityServer4.Models.ApiResource> > >().ToList();
     }, ApiResourceScopeNameCacheKeyPrefix));
 }
Beispiel #4
0
        /// <summary>
        /// Gets all resources.
        /// </summary>
        public virtual async Task <IdentityServer4.Models.Resources> GetAllResourcesAsync()
        {
            return(await ResourcesCache.GetOrAddAsync(AllResourcesKey, async() =>
            {
                var identityResources = await IdentityResourceRepository.GetListAsync(includeDetails: true);
                var apiResources = await ApiResourceRepository.GetListAsync(includeDetails: true);
                var apiScopes = await ApiScopeRepository.GetListAsync(includeDetails: true);

                return new Resources(
                    ObjectMapper.Map <List <Volo.Abp.IdentityServer.IdentityResources.IdentityResource>, List <IdentityServer4.Models.IdentityResource> >(identityResources),
                    ObjectMapper.Map <List <Volo.Abp.IdentityServer.ApiResources.ApiResource>, List <IdentityServer4.Models.ApiResource> >(apiResources),
                    ObjectMapper.Map <List <Volo.Abp.IdentityServer.ApiScopes.ApiScope>, List <IdentityServer4.Models.ApiScope> >(apiScopes));
            }, () => new DistributedCacheEntryOptions
            {
                AbsoluteExpirationRelativeToNow = Options.Caching.ClientStoreExpiration
            }));
        }
Beispiel #5
0
        public virtual async Task <ApiResource> FindApiResourceAsync(string name)
        {
            var resource = await ApiResourceRepository.FindByNameAsync(name);

            return(ObjectMapper.Map <ApiResources.ApiResource, ApiResource>(resource));
        }
Beispiel #6
0
        public virtual async Task <IEnumerable <ApiResource> > FindApiResourcesByScopeAsync(IEnumerable <string> scopeNames)
        {
            var resources = await ApiResourceRepository.GetListByScopesAsync(scopeNames.ToArray(), includeDetails : true);

            return(resources.Select(x => ObjectMapper.Map <ApiResources.ApiResource, ApiResource>(x)));
        }
Beispiel #7
0
        /// <summary>
        /// Gets API resources by API resource name.
        /// </summary>
        public virtual async Task <IEnumerable <IdentityServer4.Models.ApiResource> > FindApiResourcesByNameAsync(IEnumerable <string> apiResourceNames)
        {
            var resources = await ApiResourceRepository.FindByNameAsync(apiResourceNames.ToArray(), includeDetails : true);

            return(ObjectMapper.Map <List <Volo.Abp.IdentityServer.ApiResources.ApiResource>, List <IdentityServer4.Models.ApiResource> >(resources));
        }