Пример #1
0
        public void GetEnvironmentClientCredentialWithoutAKTest()
        {
            var defaultCredentialProvider = new DefaultCredentialProvider();
            var credential = (BasicCredentials)defaultCredentialProvider.GetEnvironmentAlibabaCloudCredential();

            Assert.Null(credential);
        }
Пример #2
0
        public void GetRamRoleArnAlibabaCloudCredential()
        {
            TestHelper.InitializeEnvironmentValue();

            var ramRoleCredential =
                new InstanceProfileCredentials("accessKey", "aks", "roletoken", DateTime.Now.ToString(), 3000);
            var profile = DefaultProfile.GetProfile();

            var response = new AssumeRoleResponse();

            response.Credentials                 = new AssumeRoleResponse.AssumeRole_Credentials();
            response.Credentials.AccessKeyId     = "ak";
            response.Credentials.AccessKeySecret = "aks";
            response.Credentials.SecurityToken   = "token";

            var mockClient = new Mock <IAcsClient>();

            mockClient.Setup(x => x.GetAcsResponse(It.IsAny <AcsRequest <AssumeRoleResponse> >())).Returns(response);
            var client = mockClient.Object;

            var stsProvider = new STSAssumeRoleSessionCredentialsProvider(ramRoleCredential, "roleArn", client);
            var defaultCredentialProvider = new DefaultCredentialProvider(profile, stsProvider);

            var actualCredentil = defaultCredentialProvider.GetRamRoleArnAlibabaCloudCredential();

            TestHelper.RemoveEnvironmentValue();
            Assert.NotNull(actualCredentil);
            Assert.Equal("aks", actualCredentil.GetAccessKeySecret());
        }
Пример #3
0
        public void GetRsaKeyPairAlibabaCloudCredential()
        {
            Environment.SetEnvironmentVariable("ALIBABA_CLOUD_REGION_ID", "region_id");

            var response = new GetSessionAccessKeyResponse();

            response.SessionAccesskey = new GetSessionAccessKeyResponse.GetSessionAccessKey_SessionAccesskey();
            response.SessionAccesskey.SessionAccessKeyId     = "ak";
            response.SessionAccesskey.SessionAccessKeySecert = "aks";

            var mockClient = new Mock <IAcsClient>();

            mockClient.Setup(x => x.GetAcsResponse(It.IsAny <AcsRequest <GetSessionAccessKeyResponse> >()))
            .Returns(response);
            var client = mockClient.Object;

            var basicSessionCredential = new BasicSessionCredentials("accessKey", "aks", "sessionToken");
            var rsaKeyCredential       = new KeyPairCredentials("publicKey", "privateKey");
            var profile = DefaultProfile.GetProfile();

            var rsaProvider = new Core.Auth.Provider.RsaKeyPairCredentialProvider(rsaKeyCredential, client);

            var defaultCredentialProvider =
                new DefaultCredentialProvider(profile, "publicKeyId", "privateKeyFile", rsaProvider);

            var actualCredentil = defaultCredentialProvider.GetRsaKeyPairAlibabaCloudCredential();

            Environment.SetEnvironmentVariable("ALIBABA_CLOUD_REGION_ID", null);
            Assert.NotNull(actualCredentil);
            Assert.Equal("aks", actualCredentil.GetAccessKeySecret());
        }
Пример #4
0
        public void GetRsaKeyPairAlibabaCloudCredentialWithException()
        {
            var profile = DefaultProfile.GetProfile();
            var defaultCredentialProvider = new DefaultCredentialProvider(profile, null);

            var exception = Assert.Throws <ClientException>(() =>
            {
                var credential = defaultCredentialProvider.GetRsaKeyPairAlibabaCloudCredential();
            });

            Assert.Equal("Missing required variable option for 'default Client'", exception.Message);
        }
Пример #5
0
        public void GetCredentialFileAlibabaCloudCredentialWithFileAndAkExistNotDefault()
        {
            TestHelper.CreateIniFileWithAkNotDefault();

            var profile = DefaultProfile.GetProfile();

            profile.DefaultClientName = null;

            var defaultCredentialProvider = new DefaultCredentialProvider(profile, null);

            var credential = defaultCredentialProvider.GetCredentialFileAlibabaCloudCredential();

            TestHelper.DeleteIniFile();
            Assert.Null(credential);
        }
Пример #6
0
        public void GetInstanceRamRoleAlibabaCloudCredential3()
        {
            var profile = DefaultProfile.GetProfile();

            Environment.SetEnvironmentVariable("ALIBABA_CLOUD_REGION_ID", "region_id");
            profile.DefaultClientName = "default";
            var defaultCredentialProvider = new DefaultCredentialProvider(profile, null);
            var exception = Assert.Throws <ArgumentNullException>(() =>
            {
                var credentialProvider = defaultCredentialProvider.GetInstanceRamRoleAlibabaCloudCredential();
            });

            Environment.SetEnvironmentVariable("ALIBABA_CLOUD_REGION_ID", null);
            Assert.Equal("You must specifiy a valid role name.", exception.ParamName);
        }
Пример #7
0
        public void GetCredentialFileAlibabaCloudCredentialWithEnvDefinedButNotFoundTest()
        {
            DefaultProfile profile = DefaultProfile.GetProfile();

            Environment.SetEnvironmentVariable("ALIBABA_CLOUD_CREDENTIALS_FILE", "D://credentials1.ini");

            var defaultCredentialProvider = new DefaultCredentialProvider(profile, null);

            var exception = Assert.Throws <ClientException>(() =>
            {
                var credential = defaultCredentialProvider.GetAlibabaCloudClientCredential();
            });

            Assert.Equal("Invalid credentials file: D://credentials1.ini", exception.Message);
            Environment.SetEnvironmentVariable("ALIBABA_CLOUD_CREDENTIALS_FILE", null);
        }
Пример #8
0
        public void GetCredentialFileAlibabaCloudCredentialWithFileAndAkExist()
        {
            TestHelper.CreateIniFileWithAk();

            var profile = DefaultProfile.GetProfile();

            profile.DefaultClientName = null;

            var defaultCredentialProvider = new DefaultCredentialProvider(profile, null);

            var credential = (BasicCredentials)defaultCredentialProvider.GetCredentialFileAlibabaCloudCredential();

            TestHelper.DeleteIniFile();
            Assert.NotNull(credential);
            Assert.Equal("foo", credential.GetAccessKeyId());
        }
Пример #9
0
        public void GetCredentialFileAlibabaCloudCredentialWithDefaultSection()
        {
            TestHelper.CreateIniFileWithDefaultSection();

            var profile = DefaultProfile.GetProfile();

            Environment.SetEnvironmentVariable("ALIBABA_CLOUD_CREDENTIALS_FILE", TestHelper.GetIniFilePath());

            var provider = new DefaultCredentialProvider(profile, null);

            var credential = provider.GetAlibabaCloudClientCredential();

            TestHelper.DeleteIniFile();
            Environment.SetEnvironmentVariable("ALIBABA_CLOUD_CREDENTIALS_FILE", null);
            Assert.NotNull(credential);
        }
Пример #10
0
        public void GetEnvironmentAlibabaCloudCredentialWithEnvAKTest()
        {
            var profile = DefaultProfile.GetProfile();

            profile.DefaultClientName = "default";

            TestHelper.InitializeEnvironmentValue();

            var defaultCredentialProvider = new DefaultCredentialProvider(profile, null);
            var credential = (BasicCredentials)defaultCredentialProvider.GetEnvironmentAlibabaCloudCredential();

            Assert.NotNull(credential);
            Assert.Equal("ACCESS_KEY_ID", credential.GetAccessKeyId());

            TestHelper.RemoveEnvironmentValue();
        }
        public void GetRamRoleArnAlibabaCloudCredential2()
        {
            TestHelper.InitializeEnvironmentValue();

            var ramRoleCredential = new InstanceProfileCredentials("accessKey", "aks", "roletoken", DateTime.Now.ToString(), 3000);
            var profile           = DefaultProfile.GetProfile();

            var defaultCredentialProvider = new DefaultCredentialProvider(profile, null);

            var exception = Assert.Throws <ClientException>(() =>
            {
                var actualCredentil = defaultCredentialProvider.GetRamRoleArnAlibabaCloudCredential();
            });

            TestHelper.RemoveEnvironmentValue();
            Assert.Equal("Specified access key is not found.", exception.ErrorMessage);
        }
Пример #12
0
        public void GetCredentialFileAlibabaCloudCredentialWithFileAndAkExistNotDefault()
        {
            var homePath = EnvironmentUtil.GetHomePath();

            TestHelper.CreateIniFileWithAkNotDefault(homePath);

            DefaultProfile profile = DefaultProfile.GetProfile();

            profile.DefaultClientName = null;

            var defaultCredentialProvider = new DefaultCredentialProvider(profile, null);

            var credential = (BasicCredentials)defaultCredentialProvider.GetCredentialFileAlibabaCloudCredential();

            TestHelper.DeleteIniFile(homePath);
            Assert.Null(credential);
        }
Пример #13
0
        public void GetCredentialFileAlibabaCloudCredentialWithAKType()
        {
            var profile = DefaultProfile.GetProfile();

            profile.DefaultClientName = "default";
            var defaultCredentialProvider = new DefaultCredentialProvider(profile, null);

            TestHelper.CreateIniFileWithAkType();

            var credential = (BasicCredentials)defaultCredentialProvider.GetAlibabaCloudClientCredential();

            TestHelper.DeleteIniFile();

            Assert.NotNull(credential);
            Assert.NotNull(credential.GetAccessKeyId());
            Assert.NotNull(credential.GetAccessKeySecret());
        }
Пример #14
0
        public void GetCredentialFileAlibabaCloudCredentialWithAKTypeButAKIsEmpty()
        {
            var profile = DefaultProfile.GetProfile();

            profile.DefaultClientName = "default";
            var defaultCredentialProvider = new DefaultCredentialProvider(profile, null);

            TestHelper.CreateIniFileWithAkTypeWithEmptyAK();

            var exception = Assert.Throws <ClientException>(() =>
            {
                var credential = (BasicCredentials)defaultCredentialProvider.GetAlibabaCloudClientCredential();
            });

            TestHelper.DeleteIniFile();

            Assert.Equal("Missing required variable option for 'default Client'", exception.Message);
        }
        public void GetRsaKeyPairAlibabaCloudCredential2()
        {
            Environment.SetEnvironmentVariable("ALIBABA_CLOUD_REGION_ID", "region_id");

            var basicSessionCredential = new BasicSessionCredentials("accessKey", "aks", "sessionToken");
            var rsaKeyCredential       = new KeyPairCredentials("publicKey", "privateKey");
            var profile = DefaultProfile.GetProfile();

            var defaultCredentialProvider = new DefaultCredentialProvider(profile, "publicKeyId", "privateKeyFile", null);

            var exception = Assert.Throws <ClientException>(() =>
            {
                var actualCredentil = defaultCredentialProvider.GetRsaKeyPairAlibabaCloudCredential();
            });

            Environment.SetEnvironmentVariable("ALIBABA_CLOUD_REGION_ID", null);
            Assert.Equal("Specified access key is not found.", exception.ErrorMessage);
        }
Пример #16
0
        public void GetInstanceRamRoleAlibabaCloudCredential()
        {
            var profile = DefaultProfile.GetProfile();
            var defaultCredentialProvider = new DefaultCredentialProvider(profile, null);

            var exception = Assert.Throws <ClientException>(() =>
            {
                defaultCredentialProvider.GetInstanceRamRoleAlibabaCloudCredential();
            });

            Assert.Equal("RegionID cannot be null or empty.", exception.Message);

            Environment.SetEnvironmentVariable("ALIBABA_CLOUD_REGION_ID", "region_id");
            profile.DefaultClientName = "test";
            defaultCredentialProvider = new DefaultCredentialProvider(profile, null);
            var credentialProvider = defaultCredentialProvider.GetInstanceRamRoleAlibabaCloudCredential();

            Environment.SetEnvironmentVariable("ALIBABA_CLOUD_REGION_ID", null);
            Assert.Null(credentialProvider);
        }
        public void GetInstanceRamRoleAlibabaCloudCredential2()
        {
            var profile = DefaultProfile.GetProfile();

            profile.DefaultClientName = "default";
            Environment.SetEnvironmentVariable("ALIBABA_CLOUD_REGION_ID", "region_id");
            Environment.SetEnvironmentVariable("ALIBABA_CLOUD_ECS_METADATA", "role_name");

            var instanceProfileCredential   = new InstanceProfileCredentials("fakeak", "fakeaks", "fakesession", DateTime.Now.ToString(), 4000);
            var mockInstanceProfileProvider = new Mock <InstanceProfileCredentialsProvider>("role_name");

            mockInstanceProfileProvider.Setup(x => x.GetCredentials()).Returns(instanceProfileCredential);
            var instanceProfileProvider = mockInstanceProfileProvider.Object;

            var defaultCredentialProvider = new DefaultCredentialProvider(profile, instanceProfileProvider);
            var actualCredential          = defaultCredentialProvider.GetInstanceRamRoleAlibabaCloudCredential();

            Environment.SetEnvironmentVariable("ALIBABA_CLOUD_REGION_ID", null);
            Environment.SetEnvironmentVariable("ALIBABA_CLOUD_ECS_METADATA", null);
            Assert.NotNull(actualCredential);
            Assert.Equal("fakeak", actualCredential.GetAccessKeyId());
        }