예제 #1
0
        public async Task <IdentityServer4.Models.Client> FindClientByIdAsync(string clientId)
        {
            var entity = await _session
                         .LoadAsync <Entity.Client>($"{nameof(Entity.Client).ToLowerInvariant()}/{clientId}",
                                                    builder => builder.Expand(string.Join(",", _expandPropertyList)))
                         .ConfigureAwait(false);

            entity.AllowedGrantTypes = await _session.GetSubEntitiesAsync(entity.AllowedGrantTypes).ConfigureAwait(false);

            entity.AllowedScopes = await _session.GetSubEntitiesAsync(entity.AllowedScopes).ConfigureAwait(false);

            entity.ClientClaims = await _session.GetSubEntitiesAsync(entity.ClientClaims).ConfigureAwait(false);

            entity.ClientSecrets = await _session.GetSubEntitiesAsync(entity.ClientSecrets).ConfigureAwait(false);

            entity.IdentityProviderRestrictions = await _session.GetSubEntitiesAsync(entity.IdentityProviderRestrictions).ConfigureAwait(false);

            entity.Properties = await _session.GetSubEntitiesAsync(entity.Properties).ConfigureAwait(false);

            entity.RedirectUris = await _session.GetSubEntitiesAsync(entity.RedirectUris).ConfigureAwait(false);

            entity.Resources = await _session.GetSubEntitiesAsync(entity.Resources).ConfigureAwait(false);

            return(entity.ToClient());
        }
예제 #2
0
        private async Task <IEnumerable <ApiResource> > ToApiResourceList(IEnumerable <Entity.ProtectResource> apiList)
        {
            foreach (var api in apiList)
            {
                api.ApiClaims = await _session.GetSubEntitiesAsync(api.ApiClaims).ConfigureAwait(false);

                api.ApiScopes = await _session.GetSubEntitiesAsync(api.ApiScopes).ConfigureAwait(false);

                api.Secrets = await _session.GetSubEntitiesAsync(api.Secrets).ConfigureAwait(false);

                api.Resources = await _session.GetSubEntitiesAsync(api.Resources).ConfigureAwait(false);

                api.Properties = await _session.GetSubEntitiesAsync(api.Properties).ConfigureAwait(false);
            }

            return(apiList
                   .Select(a => a.ToApi()));
        }