/// <summary> /// Register the scope store /// </summary> public static void RegisterScopeStore(this IdentityServerServiceFactory factory, DocumentDbServiceOptions options) { if (factory == null) throw new ArgumentNullException(nameof(factory)); if (options == null) throw new ArgumentNullException(nameof(options)); factory.RegisterCommonServices(options); factory.ScopeStore = new Registration<IScopeStore, ScopeStore>(); }
/// <summary> /// Register the operational services, namely the token and consent stores /// </summary> public static void RegisterOperationalServices(this IdentityServerServiceFactory factory, DocumentDbServiceOptions options) { if (factory == null) throw new ArgumentNullException(nameof(factory)); if (options == null) throw new ArgumentNullException(nameof(options)); factory.RegisterCommonServices(options); factory.AuthorizationCodeStore = new Registration<IAuthorizationCodeStore, AuthorizationCodeStore>(); factory.TokenHandleStore = new Registration<ITokenHandleStore, TokenHandleStore>(); factory.ConsentStore = new Registration<IConsentStore, ConsentStore>(); factory.RefreshTokenStore = new Registration<IRefreshTokenStore, RefreshTokenStore>(); }
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(); } } }
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(); } } }
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))); } }
public static IdentityServerServiceFactory Configure(DocumentDbServiceOptions documentDbServiceOptions) { var efConfig = documentDbServiceOptions; var cleanup = new TokenCleanup(efConfig, 10); cleanup.Start(); // these two calls just pre-populate the test DB from the in-memory config ConfigureClients(Clients.Get(), efConfig); ConfigureScopes(Scopes.Get(), efConfig); var factory = new IdentityServerServiceFactory(); factory.RegisterConfigurationServices(efConfig); factory.RegisterOperationalServices(efConfig); factory.UseInMemoryUsers(Users.Get()); return factory; }
/// <summary> /// Register the scope store /// </summary> public static void RegisterScopeStore(this IdentityServerServiceFactory factory, DocumentDbServiceOptions options) { if (factory == null) { throw new ArgumentNullException(nameof(factory)); } if (options == null) { throw new ArgumentNullException(nameof(options)); } factory.RegisterCommonServices(options); factory.ScopeStore = new Registration <IScopeStore, ScopeStore>(); }
/// <summary> /// Register the configuration services, namely the client and scope stores /// </summary> public static void RegisterConfigurationServices(this IdentityServerServiceFactory factory, DocumentDbServiceOptions options) { factory.RegisterClientStore(options); factory.RegisterScopeStore(options); }
/// <summary> /// Register the operational services, namely the token and consent stores /// </summary> public static void RegisterOperationalServices(this IdentityServerServiceFactory factory, DocumentDbServiceOptions options) { if (factory == null) { throw new ArgumentNullException(nameof(factory)); } if (options == null) { throw new ArgumentNullException(nameof(options)); } factory.RegisterCommonServices(options); factory.AuthorizationCodeStore = new Registration <IAuthorizationCodeStore, AuthorizationCodeStore>(); factory.TokenHandleStore = new Registration <ITokenHandleStore, TokenHandleStore>(); factory.ConsentStore = new Registration <IConsentStore, ConsentStore>(); factory.RefreshTokenStore = new Registration <IRefreshTokenStore, RefreshTokenStore>(); }
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))); } }
/// <summary> /// Register the configuration services, namely the client and scope stores /// </summary> public static void RegisterConfigurationServices(this IdentityServerServiceFactory factory, DocumentDbServiceOptions options) { factory.RegisterClientStore(options); factory.RegisterScopeStore(options); }