public void RamRoleArnProviderTest()
        {
            Configuration config = new Configuration()
            {
                AccessKeyId = "accessKeyId", AccessKeySecret = "accessKeySecret", RoleArn = "roleArn"
            };
            RamRoleArnCredentialProvider provider = new RamRoleArnCredentialProvider(config);

            Assert.NotNull(provider);

            provider = new RamRoleArnCredentialProvider("accessKeyID", "accessKeySecret", "roleSessionName", "roleArn", "regionId", "policy");
            Assert.Throws <CredentialException>(() => { provider.GetCredentials(); });

            Mock <IConnClient> mock     = new Mock <IConnClient>();
            HttpResponse       response = new HttpResponse("http://www.aliyun.com")
            {
                Status = 200, Encoding = "UTF-8", Content = Encoding.UTF8.GetBytes("{\"Credentials\":{\"Expiration\":\"2019-01-01T1:1:1Z\",\"AccessKeyId\":\"test\"," +
                                                                                   "\"AccessKeySecret\":\"test\",\"SecurityToken\":\"test\"}}")
            };

            mock.Setup(p => p.DoAction(It.IsAny <HttpRequest>())).Returns(response);
            Assert.IsType <RamRoleArnCredential>(TestHelper.RunInstanceMethod(typeof(RamRoleArnCredentialProvider), "CreateCredential", provider, new object[] { mock.Object }));

            Mock <IAlibabaCloudCredentialsProvider> mockProvider = new Mock <IAlibabaCloudCredentialsProvider>();

            mockProvider.Setup(p => p.GetCredentials()).Returns(new RamRoleArnCredential("accessKeyId", "accessKeySecret", "securityToken", 64090527132000L, null));
            RamRoleArnCredential credentialMock = new RamRoleArnCredential("accessKeyId", "accessKeySecret", "securityToken", 1000L, mockProvider.Object);

            credentialMock.RefreshCredential();
            Assert.NotNull(credentialMock);
        }
Example #2
0
        public void GetCredentialFileAlibabaCloudCredentialWithRamRole()
        {
            var ramRoleCredential = new RamRoleArnCredential("fakeak", "fakeaks", "fakeroleArn", "fakesessionname", "fakesessiontokne", 4000);
            var homePath          = (Environment.OSVersion.Platform == PlatformID.Unix || Environment.OSVersion.Platform == PlatformID.Unix) ?
                                    Environment.GetEnvironmentVariable("HOME") :
                                    Environment.ExpandEnvironmentVariables("%HOMEDRIVE%%HOMEPATH%");

            TestHelper.CreateIniFileWithRam(homePath);

            var slash         = (Environment.OSVersion.Platform == PlatformID.Unix || Environment.OSVersion.Platform == PlatformID.Unix) ? "/" : "\\";
            var finalLocation = homePath + slash + ".alibabacloud" + slash + "credentials.ini";
            var configurtion  = Configuration.LoadFromFile(finalLocation);

            DefaultProfile profile = DefaultProfile.GetProfile();

            profile.DefaultClientName = "default";

            Mock <Core.Auth.Provider.DefaultCredentialProvider> mockDefaultCredentialProvider = new Mock <Core.Auth.Provider.DefaultCredentialProvider>(profile);

            mockDefaultCredentialProvider.Setup(x => x.GetRamRoleArnAlibabaCloudCredential()).Returns(ramRoleCredential);
            mockDefaultCredentialProvider.Setup(x => x.GetHomePath()).Returns(homePath);
            mockDefaultCredentialProvider.Setup(x => x.LoadFileFromIni(It.IsAny <string>())).Returns(configurtion);
            var defaultCredentialProvider = mockDefaultCredentialProvider.Object;

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

            TestHelper.DeleteIniFile(homePath);
            Assert.NotNull(credential);
        }
Example #3
0
        public void GetRamRoleArnAlibabaCloudCredential()
        {
            TestHelper.InitializeEnvironmentValue();

            var ramRoleCredential = new RamRoleArnCredential("accessKey", "aks", "roleArn", "roleSession", "roletoken", 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 Core.Auth.Provider.DefaultCredentialProvider(profile, stsProvider);

            var actualCredentil = defaultCredentialProvider.GetRamRoleArnAlibabaCloudCredential();

            TestHelper.RemoveEnvironmentValue();
            Assert.NotNull(actualCredentil);
            Assert.Equal("aks", actualCredentil.GetAccessKeySecret());
        }
Example #4
0
        public void RamRoleArnTest()
        {
            Mock <IAlibabaCloudCredentialsProvider> mockProvider = new Mock <IAlibabaCloudCredentialsProvider>();

            mockProvider.Setup(p => p.GetCredentials()).Returns(new RamRoleArnCredential("accessKeyId", "accessKeySecret", "securityToken", 10000, null));
            RamRoleArnCredential ramRoleArnCredential = new RamRoleArnCredential("accessKeyId", "accessKeySecret", "securityToken", 64090527132000L, mockProvider.Object);

            Assert.Equal("accessKeyId", ramRoleArnCredential.AccessKeyId);
            Assert.Equal("accessKeySecret", ramRoleArnCredential.AccessKeySecret);
            Assert.Equal("securityToken", ramRoleArnCredential.SecurityToken);
            Assert.Equal(64090527132000L, ramRoleArnCredential.Expiration);
            Assert.Equal(AuthConstant.RamRoleArn, ramRoleArnCredential.CredentialType);
            Assert.NotNull(ramRoleArnCredential.GetNewCredential());

            ramRoleArnCredential.RefreshCredential();
            Assert.NotNull(ramRoleArnCredential);
        }
Example #5
0
        public async Task RamRoleArnAsyncTest()
        {
            Mock <IAlibabaCloudCredentialsProvider> mockProvider = new Mock <IAlibabaCloudCredentialsProvider>();

            mockProvider.Setup(p => p.GetCredentialsAsync()).ReturnsAsync(new RamRoleArnCredential("accessKeyId", "accessKeySecret", "securityToken", 10000, null));
            RamRoleArnCredential ramRoleArnCredential = new RamRoleArnCredential("accessKeyId", "accessKeySecret", "securityToken", 64090527132000L, mockProvider.Object);

            Assert.Equal("accessKeyId", await ramRoleArnCredential.GetAccessKeyIdAsync());
            Assert.Equal("accessKeySecret", await ramRoleArnCredential.GetAccessKeySecretAsync());
            Assert.Equal("securityToken", await ramRoleArnCredential.GetSecurityTokenAsync());
            Assert.Equal(64090527132000L, await ramRoleArnCredential.GetExpirationAsync());
            Assert.Equal(AuthConstant.RamRoleArn, await ramRoleArnCredential.GetCredentialTypeAsync());
            Assert.NotNull(await ramRoleArnCredential.GetNewCredentialAsync <RamRoleArnCredential>());

            await ramRoleArnCredential.RefreshCredentialAsync();

            Assert.NotNull(ramRoleArnCredential);
        }
Example #6
0
        public virtual AlibabaCloudCredentials GetRamRoleArnAlibabaCloudCredential()
        {
            if (String.IsNullOrEmpty(this.accessKeyId) && String.IsNullOrEmpty(this.accessKeySecret) && String.IsNullOrEmpty(this.regionId))
            {
                throw new ClientException("Missing required variable option for 'default Client'");
            }
            RamRoleArnCredential credential = new RamRoleArnCredential(
                this.accessKeyId,
                this.accessKeySecret,
                this.roleArn,
                this.roleSessionName,
                STSAssumeRoleSessionCredentialsProvider.GetNewRoleSessionName(),
                STSAssumeRoleSessionCredentialsProvider.DEFAULT_DURATION_SECONDS);

            this.defaultProfile = DefaultProfile.GetProfile(this.regionId, this.accessKeyId, this.accessKeySecret);

            var sTSAssumeRoleSessionCredentialsProvider = (STSAssumeRoleSessionCredentialsProvider)alibabaCloudCredentialProvider;
            RamRoleArnCredential ramRoleArnCredential   = (RamRoleArnCredential)sTSAssumeRoleSessionCredentialsProvider.GetCredentials();

            return(ramRoleArnCredential);
        }