Esempio n. 1
0
        public static void ConfigureTokenProvider <TTokenProvider>(
            this IServiceCollection services,
            Func <ITokenProviderServiceSettings, IEncryptionProvider, TTokenProvider> constructor,
            Action <TokenProviderServiceSettings> tpsHandler = null)
            where TTokenProvider : ITokenHandler
        {
            services.AddSingleton <ITokenHandler>(sp =>
            {
                var tokenProviderSettingsSection      = sp.GetRequiredService <IConfiguration>().GetSection("TokenProviderSettings");
                var encryptionProviderSettingsSection = sp.GetRequiredService <IConfiguration>().GetSection("EncryptionProviderSettings");
                TokenProviderServiceSettings tps      = tokenProviderSettingsSection != null ? new TokenProviderServiceSettings
                {
                    AudienceUrl        = tokenProviderSettingsSection.GetValue <string>("AudienceUrl"),
                    ConfirmationMethod = tokenProviderSettingsSection.GetValue <string>("ConfirmationMethod"),
                    Issuer             = tokenProviderSettingsSection.GetValue <string>("Issuer"),
                    Namespace          = tokenProviderSettingsSection.GetValue <string>("Namespace"),
                    SubjectName        = tokenProviderSettingsSection.GetValue <string>("SubjectName"),
                    ValidFor           = tokenProviderSettingsSection.GetValue <int>("ValidFor"),
                } : new TokenProviderServiceSettings();
                if (tpsHandler != null)
                {
                    tpsHandler(tps);
                }
                IEncryptionProvider encryptionProvider = encryptionProviderSettingsSection != null ?
                                                         new EncryptionProvider.EncryptionProvider(encryptionProviderSettingsSection.GetValue <string>("Key")) :
                                                         new EncryptionProvider.EncryptionProvider($"{tps.AudienceUrl}{tps.ConfirmationMethod}{tps.Issuer}{tps.Namespace}{tps.SubjectName}{tps.ValidFor}");

                return(constructor(tps, encryptionProvider));
            }
                                                  );
        }
Esempio n. 2
0
 public DfpService(IOptions <FraudProtectionSettings> fraudProtectionSettings, IOptions <TokenProviderServiceSettings> tokenProviderServiceSettings)
 {
     this.fraudProtectionSettings      = fraudProtectionSettings.Value;
     this.tokenProviderServiceSettings = tokenProviderServiceSettings.Value;
 }