Beispiel #1
0
        public static void AddStoneBankingJwt(this IServiceCollection services, IConfigurationRoot configurationRoot)
        {
            if (services == null)
            {
                throw new ArgumentNullException("ServiceCollection cannot be null");
            }

            if (configurationRoot == null)
            {
                throw new ArgumentNullException("ConfigurationRoot cannot be null. Try add 'services.AddSingleton(Configuration);' before 'services.AddStoneBankingJwt();'");
            }

            var section = configurationRoot.GetSection("StoneBankingJwt");

            if (!section.Exists())
            {
                throw new ArgumentException("ConfigurationRoot must have a section with name StoneBankingJwt.");
            }

            var stoneBankingSettings = new StoneBankingSettings();

            configurationRoot.GetSection("StoneBankingJwt").Bind(stoneBankingSettings);

            AddStoneBankingJwt(services, stoneBankingSettings);
        }
Beispiel #2
0
        public static void LoadConfig_WithObject()
        {
            // arrange
            var services             = new ServiceCollection();
            var stoneBankingSettings = new StoneBankingSettings
            {
                ClientId   = "1231234",
                PrivateKey = "-----BEGIN RSA PRIVATE KEY-----\n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\n-----END RSA PRIVATE KEY-----\n",
                PublicKey  = "-----BEGIN PUBLIC KEY-----\nMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAr49YBXfHZkPxXAQ+uHWc\nHNMLt2PY0t1G5TvAV6+BQBvv64BASjVe0uBHw8LOeQ1Gu5aQDyxUm5PDzORrkK+y\n9YaK+2X24XkRVuR9v4ZD5eQXKLanNm/6EGPmeHfsmhI3ecgjePs+M7kEkcVcloO6\nEPEZdhf32NLV+tY6D4FKD3sJ+RhV7CmKoBi6Befwlmpo64kStdzlaq2s3jMNvxWM\nH4rjuYglC3LKNsTzbKBqyS+aqFOfE5MRCCyAlusN/vQ6cD3/AHzTbVpNgohk6T0c\np/7iZSAhD3T6/HmXEALrenNoMZrzQES5Qbf2XgozQvh0j/UONYVWA6cfkY7+gtte\nwcENe1h+Rm+5inWCc7aEKAlldJrZsI5jH90yewoFtcgvsKl18OQC//H/Hix1g8x5\ndNaje9H9WtKYwtPtu9xzUeO0sFtFra1qknGKvCXP+H1t4mX9VnmUMx+2iTZfss4V\nrJvEaw/mNbJx1w0sjQioJpsik8PqV4B//ZVK8xMcY4P/H8ly5eTHJB91NBcZZiy8\nnUGMbybV8SJH4FmqnFfIIMJODQao6XhbkQ0IFkqWmWR4gyLaIKQ2QIKW/uzB5ClL\nTLq6Pkc0pkP9zhmrBKw5ejJRzyIRAksodp/lXsyBMOhw2cAK30SjYeAWKH0BmTfV\nd2GzlXHVfGLqk5wWZl3lzoUCAwEAAQ==\n-----END PUBLIC KEY-----\n",
            };

            // act
            services.AddStoneBankingJwt(stoneBankingSettings);
            var provider = services.BuildServiceProvider();

            var settings = provider.GetService <StoneBankingSettings>();
            var jwtSign  = provider.GetService <IStoneBankingJwt>();

            // assert
            Assert.Equal(settings.ClientId, "1231234");
            Assert.Equal(settings.ConsentExpiresInSeconds, 300);
            Assert.Equal(settings.AuthenticationExpiresInSeconds, 900);
            Assert.Equal(settings.Environment, StoneBankingEnvironment.Sandbox);
            Assert.Null(settings.ConsentDefaultRedirectUrl);
            Assert.Equal(settings.PublicKey, stoneBankingSettings.PublicKey);
            Assert.Equal(settings.PrivateKey, stoneBankingSettings.PrivateKey);

            var jwtSignObj = ((StoneBankingJwt)jwtSign);

            Assert.Equal(jwtSignObj.PublicKey, stoneBankingSettings.PublicKey);
            Assert.Equal(jwtSignObj.PrivateKey, stoneBankingSettings.PrivateKey);
        }
        public StoneBankingJwt(StoneBankingSettings stoneBankingSettings)
        {
            this.StoneBankingSettings = stoneBankingSettings;
            this.AssemblyVersion      = Assembly.GetExecutingAssembly().GetName().Version.ToString();
            this.AccountsApiUrl       = StoneBankingSettingsStatic.GetAccountsApi(this.StoneBankingSettings.Environment);

            this.ValidateRequiredSettings();
            this.ReadPublicKey();
            this.ReadPrivateKey();
        }
Beispiel #4
0
        public static void AddStoneBankingJwt(this IServiceCollection services, StoneBankingSettings stoneBankingSettings)
        {
            if (services == null)
            {
                throw new ArgumentNullException("ServiceCollection cannot be null");
            }

            if (stoneBankingSettings == null)
            {
                throw new ArgumentNullException("StoneBankingSettings cannot be null.");
            }

            services.AddSingleton(provider => stoneBankingSettings);
            services.AddSingleton <IStoneBankingJwt, StoneBankingJwt>();
        }
Beispiel #5
0
        public static void AddStoneBankingJwt(this IServiceCollection services, Action <StoneBankingSettings> setupAction)
        {
            if (services == null)
            {
                throw new ArgumentNullException("ServiceCollection cannot be null");
            }

            if (setupAction == null)
            {
                throw new ArgumentNullException("SetupAction cannot be null.");
            }

            var stoneBankingSettings = new StoneBankingSettings();

            setupAction(stoneBankingSettings);

            AddStoneBankingJwt(services, stoneBankingSettings);
        }