Пример #1
0
 public static void ConfigureScopes(IEnumerable<Scope> scopes, DocumentDbServiceOptions options)
 {
     ScopeRepository scopeRepository = new ScopeRepository(options.ToConnectionSettings());
     var allScopes = scopeRepository.GetAllScopes().Result;
     if (!allScopes.Any())
     {
         foreach (var s in scopes)
         {
             scopeRepository.AddScope(s.ToDocument()).Wait();
         }
     }
 }
Пример #2
0
 public static void ConfigureClients(IEnumerable<Client> clients, DocumentDbServiceOptions options)
 {
     ClientRepository clientRepository = new ClientRepository(options.ToConnectionSettings());
     var allClients = clientRepository.GetAllClients().Result;
     if (!allClients.Any())
     {
         foreach (var c in clients)
         {
             clientRepository.AddClient(c.ToDocument()).Wait();
         }
     }
 }
Пример #3
0
        private static void RegisterCommonServices(this IdentityServerServiceFactory factory, DocumentDbServiceOptions options)
        {
            if (factory.Registrations.All(x => x.DependencyType != typeof(IPropertySerializer)))
            {
                var connectionSettings = options.ToConnectionSettings();
                var nameresolver       = options.CollectionNameResolver;
                factory.Register(new Registration <ICollectionNameResolver>(options.CollectionNameResolver));
                factory.Register(new Registration <ConnectionSettings>(resolver => connectionSettings));
                factory.Register(new Registration <IPropertySerializer, JsonPropertySerializer>());

                //singletons to avoid excessing docdb client creations
                factory.Register(new Registration <IConsentRepository>(new ConsentRepository(nameresolver, connectionSettings)));
                factory.Register(new Registration <IAuthorizationCodeRepository>(new AuthorizationCodeRepository(nameresolver, connectionSettings)));
                factory.Register(new Registration <IRefreshTokenRepository>(new RefreshTokenRepository(nameresolver, connectionSettings)));
                factory.Register(new Registration <ITokenHandleRepository>(new TokenHandleRepository(nameresolver, connectionSettings)));
                factory.Register(new Registration <IClientRepository>(new ClientRepository(nameresolver, connectionSettings)));
                factory.Register(new Registration <IScopeRepository>(new ScopeRepository(nameresolver, connectionSettings)));
            }
        }
Пример #4
0
        public TokenCleanup(DocumentDbServiceOptions options, int interval = 60)
        {
            if (options == null)
            {
                throw new ArgumentNullException(nameof(options));
            }
            if (interval < 1)
            {
                throw new ArgumentException("interval must be more than 1 second");
            }

            var connectionSettings = options.ToConnectionSettings();

            this._interval = TimeSpan.FromSeconds(interval);

            _refreshTokenRepository      = new RefreshTokenRepository(options.CollectionNameResolver, connectionSettings);
            _authorizationCodeRepository = new AuthorizationCodeRepository(options.CollectionNameResolver, connectionSettings);
            _tokenHandleRepository       = new TokenHandleRepository(options.CollectionNameResolver, connectionSettings);
        }
        private static void RegisterCommonServices(this IdentityServerServiceFactory factory, DocumentDbServiceOptions options)
        {
            if (factory.Registrations.All(x => x.DependencyType != typeof (IPropertySerializer)))
            {
                var connectionSettings = options.ToConnectionSettings();
                factory.Register(new Registration<ConnectionSettings>(connectionSettings));
                factory.Register(new Registration<IPropertySerializer, JsonPropertySerializer>()
                {
                    Mode = RegistrationMode.Singleton,
                });

                // repository singletons
                factory.Register(new Registration<IConsentRepository>(new ConsentRepository(connectionSettings)));
                factory.Register(new Registration<IAuthorizationCodeRepository>(new AuthorizationCodeRepository(connectionSettings)));
                factory.Register(new Registration<IRefreshTokenRepository>(new RefreshTokenRepository(connectionSettings)));
                factory.Register(new Registration<ITokenHandleRepository>(new TokenHandleRepository(connectionSettings)));
                factory.Register(new Registration<IClientRepository>(new ClientRepository(connectionSettings)));
                factory.Register(new Registration<IScopeRepository>(new ScopeRepository(connectionSettings)));
            }
        }