38 lines
No EOL
1.4 KiB
C#
38 lines
No EOL
1.4 KiB
C#
using IdentityShroud.Core.Contracts;
|
|
using IdentityShroud.Core.EFCore;
|
|
using IdentityShroud.Core.Security;
|
|
using IdentityShroud.Core.Security.Keys;
|
|
using IdentityShroud.Core.Services;
|
|
using Microsoft.Extensions.DependencyInjection;
|
|
|
|
namespace IdentityShroud.Core;
|
|
|
|
public static class CoreServiceCollectionExtensions
|
|
{
|
|
public static IServiceCollection AddCore(this IServiceCollection services)
|
|
{
|
|
services.AddScoped<Db>();
|
|
|
|
services.Scan(scan => scan
|
|
.FromAssemblyOf<RealmService>()
|
|
.AddClasses(classes => classes.AssignableTo<IJwtSigner>())
|
|
.AsImplementedInterfaces()
|
|
.WithSingletonLifetime());
|
|
services.AddSingleton<IJwtSignerFactory, JwtSignerFactory>();
|
|
|
|
services.AddSingleton<IClock, ClockService>();
|
|
services.AddSingleton<IDekEncryptionService, DekEncryptionService>();
|
|
services.AddScoped<IDataEncryptionService, DataEncryptionService>();
|
|
services.AddScoped<IRealmContext, RealmContext>();
|
|
services.AddScoped<IKeyProviderFactory, KeyProviderFactory>();
|
|
services.AddScoped<IKeyService, KeyService>();
|
|
services.AddSingleton<ISecretProvider, ConfigurationSecretProvider>();
|
|
|
|
|
|
services.AddScoped<IClientService, ClientService>();
|
|
services.AddScoped<IRealmService, RealmService>();
|
|
|
|
|
|
return services;
|
|
}
|
|
} |