Esempio n. 1
0
 private async Task SetSecretConfiguration(OdsSecretConfiguration configuration, int?instanceRegistrationId = null)
 {
     await ScopedAsync <AdminAppDbContext>(async database =>
     {
         var provider = OdsSecretConfigurationProvider(database);
         await provider.SetSecretConfiguration(configuration, instanceRegistrationId);
     });
 }
Esempio n. 2
0
        private OdsSecretConfiguration GetOdsSecretConfiguration()
        {
            var odsSecretConfiguration = new OdsSecretConfiguration
            {
                ProductionApiKeyAndSecret = new OdsApiCredential("production", "api")
            };

            return(odsSecretConfiguration);
        }
        private async Task CreateAndSaveApiKeyAndSecret(OdsInstanceRegistration odsInstanceRegistration, CloudOdsClaimSet claimSet, ApiMode mode)
        {
            var secretConfiguration = new OdsSecretConfiguration();

            var applicationCreateResult = await _firstTimeSetupService.CreateAdminAppInAdminDatabase(claimSet.ClaimSetName, odsInstanceRegistration.Name,
                                                                                                     ConfigurationManager.AppSettings["AwsCurrentVersion"], mode);

            secretConfiguration.ProductionApiKeyAndSecret = applicationCreateResult.ProductionKeyAndSecret;

            await _odsSecretConfigurationProvider.SetSecretConfiguration(secretConfiguration, odsInstanceRegistration.Id);
        }
Esempio n. 4
0
        public async Task ShouldEditSecretConfiguration_SingleInstance()
        {
            ClearSecretConfigurationCache();

            var productionApiKey    = Guid.NewGuid().ToString();
            var productionApiSecret = Guid.NewGuid().ToString();

            var newProductionApiKey    = Guid.NewGuid().ToString();
            var newProductionApiSecret = Guid.NewGuid().ToString();

            var secretConfiguration = new OdsSecretConfiguration
            {
                ProductionApiKeyAndSecret = new OdsApiCredential
                {
                    Key    = productionApiKey,
                    Secret = productionApiSecret
                }
            };

            var editSecretConfiguration = new OdsSecretConfiguration
            {
                ProductionApiKeyAndSecret = new OdsApiCredential
                {
                    Key    = newProductionApiKey,
                    Secret = newProductionApiSecret
                }
            };

            var odsInstanceRegistration = CreateOdsInstanceRegistration("SingleInstance-EditConfig_" + Guid.NewGuid());

            odsInstanceRegistration.ShouldNotBeNull();

            await OdsSecretConfigurationProvider.SetSecretConfiguration(secretConfiguration, odsInstanceRegistration.Id);

            var createdSecretConfiguration = await OdsSecretConfigurationProvider.GetSecretConfiguration(odsInstanceRegistration.Id);

            createdSecretConfiguration.ProductionApiKeyAndSecret.Key.ShouldBe(productionApiKey);
            createdSecretConfiguration.ProductionApiKeyAndSecret.Secret.ShouldBe(productionApiSecret);
            createdSecretConfiguration.BulkUploadCredential.ShouldBe(null);
            createdSecretConfiguration.LearningStandardsCredential.ShouldBe(null);
            createdSecretConfiguration.ProductionAcademicBenchmarkApiClientKeyAndSecret.ShouldBe(null);

            await OdsSecretConfigurationProvider.SetSecretConfiguration(editSecretConfiguration, odsInstanceRegistration.Id);

            var editedSecretConfiguration = await OdsSecretConfigurationProvider.GetSecretConfiguration(odsInstanceRegistration.Id);

            editedSecretConfiguration.ProductionApiKeyAndSecret.Key.ShouldBe(newProductionApiKey);
            editedSecretConfiguration.ProductionApiKeyAndSecret.Secret.ShouldBe(newProductionApiSecret);
            editedSecretConfiguration.BulkUploadCredential.ShouldBe(null);
            editedSecretConfiguration.LearningStandardsCredential.ShouldBe(null);
            editedSecretConfiguration.ProductionAcademicBenchmarkApiClientKeyAndSecret.ShouldBe(null);
        }
        public async Task ShouldExecute()
        {
            var odsSecretConfiguration = new OdsSecretConfiguration
            {
                ProductionApiKeyAndSecret = new OdsApiCredential("production", "api")
            };

            var instanceContext = new InstanceContext {
                Id = 1, Name = "Test instance"
            };

            var mockIOdsSecretConfigurationProvider = new Mock <IOdsSecretConfigurationProvider>();

            mockIOdsSecretConfigurationProvider.Setup(a => a.GetSecretConfiguration(1)).ReturnsAsync(odsSecretConfiguration);

            var query       = new GetOdsAdminAppApiCredentialsQuery(mockIOdsSecretConfigurationProvider.Object, instanceContext);
            var credentials = await query.Execute();

            credentials.ProductionApiCredential.Key.ShouldBe(odsSecretConfiguration.ProductionApiKeyAndSecret.Key);
            credentials.ProductionApiCredential.Secret.ShouldBe(odsSecretConfiguration.ProductionApiKeyAndSecret.Secret);
        }
        public async Task When_Perform_Post_Request_To_ResetCredentials_With_Valid_OdsSecretConfig_Returns_Json_Success()
        {
            // Arrange
            const string expectedKey    = "key";
            const string expectedSecret = "secret";
            var          odsConfig      = new OdsSecretConfiguration
            {
                BulkUploadCredential = new BulkUploadCredential
                {
                    ApiKey    = expectedKey,
                    ApiSecret = expectedSecret
                }
            };

            OdsSecretConfigurationProvider.Setup(x => x.GetSecretConfiguration(It.IsAny <int>()))
            .Returns(Task.FromResult(odsConfig));

            // Act
            var result = (ContentResult)await SystemUnderTest.ResetCredentials();

            // Assert
            result.Content.Contains("Credentials successfully reset").ShouldBeTrue();
        }
        public async Task SetSecretConfiguration(OdsSecretConfiguration configuration, int?odsInstanceId = null)
        {
            await Task.Run(() => { });

            _odsSecretConfig = configuration;
        }
 public FakeOdsSecretConfigurationProvider()
 {
     _odsSecretConfig = new OdsSecretConfiguration();
     _odsSqlConfig    = new OdsSqlConfiguration();
 }
Esempio n. 9
0
        public async Task ShouldEditSecretConfiguration_MultiInstance()
        {
            ClearSecretConfigurationCache();

            var productionApiKey    = Guid.NewGuid().ToString();
            var productionApiSecret = Guid.NewGuid().ToString();

            var newProductionApiKey    = Guid.NewGuid().ToString();
            var newProductionApiSecret = Guid.NewGuid().ToString();

            var secretConfiguration = new OdsSecretConfiguration
            {
                ProductionApiKeyAndSecret = new OdsApiCredential
                {
                    Key    = productionApiKey,
                    Secret = productionApiSecret
                }
            };

            var editSecretConfiguration = new OdsSecretConfiguration
            {
                ProductionApiKeyAndSecret = new OdsApiCredential
                {
                    Key    = newProductionApiKey,
                    Secret = newProductionApiSecret
                }
            };

            var odsInstanceRegistration1 = CreateOdsInstanceRegistration("MultiInstance1-EditConfig_" + Guid.NewGuid());
            var odsInstanceRegistration2 = CreateOdsInstanceRegistration("MultiInstance2-EditConfig_" + Guid.NewGuid());

            odsInstanceRegistration1.ShouldNotBeNull();
            odsInstanceRegistration2.ShouldNotBeNull();

            // Set secret configuration for instance 1
            await OdsSecretConfigurationProvider.SetSecretConfiguration(secretConfiguration, odsInstanceRegistration1.Id);

            // Set secret configuration for instance 2
            await OdsSecretConfigurationProvider.SetSecretConfiguration(secretConfiguration, odsInstanceRegistration2.Id);

            // Edit the secret configuration for instance 1
            await OdsSecretConfigurationProvider.SetSecretConfiguration(editSecretConfiguration, odsInstanceRegistration1.Id);

            // Verify the secret configuration for instance 2
            var createdSecretConfigurationForInstance2 = await OdsSecretConfigurationProvider.GetSecretConfiguration(odsInstanceRegistration2.Id);

            createdSecretConfigurationForInstance2.ProductionApiKeyAndSecret.Key.ShouldBe(productionApiKey);
            createdSecretConfigurationForInstance2.ProductionApiKeyAndSecret.Secret.ShouldBe(productionApiSecret);
            createdSecretConfigurationForInstance2.BulkUploadCredential.ShouldBe(null);
            createdSecretConfigurationForInstance2.LearningStandardsCredential.ShouldBe(null);
            createdSecretConfigurationForInstance2.ProductionAcademicBenchmarkApiClientKeyAndSecret.ShouldBe(null);

            // Verify the edited secret configuration for instance 1
            var editedSecretConfigurationForInstance1 = await OdsSecretConfigurationProvider.GetSecretConfiguration(odsInstanceRegistration1.Id);

            editedSecretConfigurationForInstance1.ProductionApiKeyAndSecret.Key.ShouldBe(newProductionApiKey);
            editedSecretConfigurationForInstance1.ProductionApiKeyAndSecret.Secret.ShouldBe(newProductionApiSecret);
            editedSecretConfigurationForInstance1.BulkUploadCredential.ShouldBe(null);
            editedSecretConfigurationForInstance1.LearningStandardsCredential.ShouldBe(null);
            editedSecretConfigurationForInstance1.ProductionAcademicBenchmarkApiClientKeyAndSecret.ShouldBe(null);
        }
Esempio n. 10
0
 private static async Task SetSecretConfiguration(OdsSecretConfiguration configuration, int?instanceRegistrationId = null)
 {
     await ScopedAsync <IOdsSecretConfigurationProvider>(
         async provider => await provider.SetSecretConfiguration(configuration, instanceRegistrationId));
 }