protected override void Load(ContainerBuilder builder)
        {
            builder.RegisterType <CustomerCredentialsService>()
            .As <ICustomerCredentialsService>()
            .SingleInstance();

            builder.RegisterType <AdminCredentialsService>()
            .As <IAdminCredentialsService>()
            .SingleInstance();

            builder.Register(context =>
            {
                var connectionMultiplexer =
                    ConnectionMultiplexer.Connect(_appSettings.CredentialsService.Redis.ConnString);
                return(connectionMultiplexer);
            }).As <IConnectionMultiplexer>().SingleInstance();

            builder.RegisterType <PasswordResetService>()
            .As <IPasswordResetService>()
            .SingleInstance()
            .WithParameter("maxAllowedRequestsNumber",
                           _appSettings.CredentialsService.LimitationSettings.MaxAllowedRequestsNumber)
            .WithParameter("instanceName", _appSettings.CredentialsService.Redis.InstanceName)
            .WithParameter("monitoredPeriod", _appSettings.CredentialsService.LimitationSettings.MonitoredPeriod)
            .WithParameter("identifierTimeSpan", _appSettings.CredentialsService.IdentifierTimeSpan)
            .WithParameter("resetIdentifierLength", _appSettings.CredentialsService.ResetIdentifierLength);

            builder.RegisterType <ResetIdentifierService>()
            .As <IResetIdentifierService>()
            .SingleInstance()
            .WithParameter("maxAllowedRequestsNumber",
                           _appSettings.CredentialsService.LimitationSettings.MaxAllowedRequestsNumber)
            .WithParameter("instanceName", _appSettings.CredentialsService.Redis.InstanceName)
            .WithParameter("monitoredPeriod", _appSettings.CredentialsService.LimitationSettings.MonitoredPeriod)
            .WithParameter("identifierTimeSpan", _appSettings.CredentialsService.IdentifierTimeSpan)
            .WithParameter("resetIdentifierLength", _appSettings.CredentialsService.ResetIdentifierLength);

            builder.RegisterType <Sha256HashingUtil>()
            .AsSelf()
            .SingleInstance();

            var passwordRules = new PasswordValidationRulesDto
            {
                AllowWhiteSpaces      = _appSettings.CredentialsService.PasswordValidationSettings.AllowWhiteSpaces,
                MinLength             = _appSettings.CredentialsService.PasswordValidationSettings.MinLength,
                MinUpperCase          = _appSettings.CredentialsService.PasswordValidationSettings.MinUpperCase,
                MinLowerCase          = _appSettings.CredentialsService.PasswordValidationSettings.MinLowerCase,
                MinNumbers            = _appSettings.CredentialsService.PasswordValidationSettings.MinNumbers,
                AllowedSpecialSymbols =
                    _appSettings.CredentialsService.PasswordValidationSettings.AllowedSpecialSymbols,
                MinSpecialSymbols = _appSettings.CredentialsService.PasswordValidationSettings.MinSpecialSymbols,
                MaxLength         = _appSettings.CredentialsService.PasswordValidationSettings.MaxLength,
            };

            builder.RegisterType <PasswordValidator>()
            .WithParameter(TypedParameter.From(passwordRules))
            .As <IPasswordValidator>()
            .SingleInstance();

            builder.RegisterType <PartnerCredentialsService>()
            .As <IPartnerCredentialsService>()
            .SingleInstance();

            builder.RegisterType <Base34Util>()
            .As <IBase34Util>()
            .SingleInstance();

            builder.RegisterType <CredentialsGeneratorService>()
            .As <ICredentialsGeneratorService>()
            .SingleInstance();

            builder.RegisterType <SettingsService>()
            .As <ISettingsService>()
            .WithParameter(TypedParameter.From(_appSettings.CredentialsService.PinCodeLength))
            .SingleInstance();
        }
        protected override void Load(ContainerBuilder builder)
        {
            builder.RegisterType <StartupManager>()
            .AsSelf()
            .SingleInstance();

            builder.RegisterType <ShutdownManager>()
            .AsSelf()
            .AutoActivate()
            .SingleInstance();

            builder.RegisterType <CustomerService>()
            .As <ICustomerService>()
            .SingleInstance();

            builder.RegisterType <WalletOperationsService>()
            .As <IWalletOperationsService>()
            .WithParameter(TypedParameter.From(_settings.Constants.TokenSymbol))
            .SingleInstance();

            builder.RegisterType <RequestContext>().As <IRequestContext>().InstancePerLifetimeScope();
            builder.RegisterType <LykkePrincipal>().As <ILykkePrincipal>().InstancePerLifetimeScope();

            builder.RegisterType <MemoryCacheManager>().As <ICacheManager>();

            builder.RegisterType <ReferralService>().As <IReferralService>().SingleInstance();

            builder.RegisterType <MobileSettingsReader>()
            .WithParameter(TypedParameter.From(_mobileSettings.SettingsUrl))
            .As <IMobileSettingsReader>()
            .As <IStartStop>()
            .SingleInstance();

            builder.RegisterType <PushNotificationService>()
            .As <IPushNotificationService>()
            .SingleInstance();

            builder.RegisterType <PartnersMessagesService>()
            .As <IPartnersMessagesService>()
            .SingleInstance();

            var passwordRules = new PasswordValidationRulesDto
            {
                AllowWhiteSpaces      = _settings.PasswordValidationSettings.AllowWhiteSpaces,
                MinLength             = _settings.PasswordValidationSettings.MinLength,
                MinUpperCase          = _settings.PasswordValidationSettings.MinUpperCase,
                MinLowerCase          = _settings.PasswordValidationSettings.MinLowerCase,
                MinNumbers            = _settings.PasswordValidationSettings.MinNumbers,
                AllowedSpecialSymbols = _settings.PasswordValidationSettings.AllowedSpecialSymbols,
                MinSpecialSymbols     = _settings.PasswordValidationSettings.MinSpecialSymbols,
                MaxLength             = _settings.PasswordValidationSettings.MaxLength,
            };

            builder.RegisterType <PasswordValidator>()
            .WithParameter(TypedParameter.From(passwordRules))
            .As <IPasswordValidator>()
            .SingleInstance();

            builder.RegisterType <OperationsHistoryService>().As <IOperationsHistoryService>();

            builder.RegisterInstance(RestService.For <IGoogleApi>(_settings.GoogleAuthSettings.GoogleApiUrl))
            .As <IGoogleApi>()
            .SingleInstance();

            builder.RegisterType <AuthService>()
            .As <IAuthService>()
            .SingleInstance();

            builder.Register(c => ConnectionMultiplexer.Connect(_settings.CacheSettings.RedisConfiguration))
            .As <IConnectionMultiplexer>()
            .SingleInstance();

            builder.RegisterType <RedisLocksService>()
            .WithParameter(TypedParameter.From(RequestsRouteThrottlingByCustomerPattern))
            .Keyed <IDistributedLocksService>(DistributedLockPurpose.RouteThrottling)
            .As <IDistributedLocksService>()
            .SingleInstance();

            builder.RegisterType <RedisLocksService>()
            .WithParameter(TypedParameter.From(RequestsSignInThrottlingByLoginPattern))
            .Keyed <IDistributedLocksService>(DistributedLockPurpose.SigninThrottling)
            .As <IDistributedLocksService>()
            .SingleInstance();

            builder.RegisterType <DistributedLocksServiceProvider>()
            .As <IDistributedLocksServiceProvider>();

            builder.RegisterType <ExpiringCountersService>()
            .As <IExpiringCountersService>()
            .SingleInstance();

            builder.RegisterType <SettingsService>()
            .WithParameter("tokenName", _settings.Constants.TokenSymbol)
            .WithParameter("usdAssetName", _settings.Constants.UsdAssetName)
            .WithParameter("baseCurrencyCode", _settings.BaseCurrencyCode)
            .WithParameter("transitAccountAddress", _settings.TransitAccountAddress)
            .WithParameter("isPublicBlockchainFeatureDisabled", _settings.IsPublicBlockchainFeatureDisabled)
            .As <ISettingsService>();

            builder.RegisterType <ThrottlingSettingsService>()
            .WithParameter(TypedParameter.From(_settings.RequestLimitsByCustomer.Select(x =>
                                                                                        new RouteThrottlingConfigurationItem
            {
                Verb = x.Verb, Route = x.Route, FrequencyInSeconds = x.FrequencyInSeconds
            })))
            .WithParameter(TypedParameter.From(new SigninThrottlingConfiguration
            {
                WarningThreshold  = _settings.FailedLoginAttemptsThrottling.WarningThreshold,
                LockThreshold     = _settings.FailedLoginAttemptsThrottling.LockThreshold,
                ThresholdPeriod   = _settings.FailedLoginAttemptsThrottling.ThresholdPeriod,
                AccountLockPeriod = _settings.FailedLoginAttemptsThrottling.AccountLockPeriod
            }))
            .As <IThrottlingSettingsService>()
            .SingleInstance();

            builder.RegisterType <SigninThrottlingService>()
            .As <ISigninThrottlingService>()
            .SingleInstance();

            builder.RegisterType <CurrencyConverter>()
            .As <ICurrencyConverter>()
            .SingleInstance();

            builder.RegisterType <PartnersPaymentsResponseFormatter>()
            .AsSelf()
            .SingleInstance();

            builder.RegisterType <PublicWalletLinkingService>()
            .As <IPublicWalletLinkingService>()
            .SingleInstance();

            builder.RegisterType <PublicWalletTransferService>()
            .As <IPublicWalletTransferService>()
            .SingleInstance();

            builder.RegisterType <NotificationMessagesService>()
            .As <INotificationMessagesService>()
            .SingleInstance();
        }
Beispiel #3
0
 public PasswordValidator(PasswordValidationRulesDto validationRules)
 {
     _validationRules = validationRules;
 }