Exemplo n.º 1
0
        public void SetCredentialsProvider()
        {
            DefaultProfile.ClearDefaultProfile();
            Credential     credential;
            DefaultProfile profile = DefaultProfile.GetProfile();
            var            mock    = new Mock <AlibabaCloudCredentialsProvider>();
            AlibabaCloudCredentialsProvider provider = mock.Object;

            profile.SetCredentialsProvider(provider); // 不为null时,直接回调,即此操作无效
            credential = profile.GetCredential();     // 会执行credential初始化
            Assert.NotNull(credential);
            Assert.IsType <CredentialsBackupCompatibilityAdaptor>(credential);

            profile.SetCredentialsProvider(null); // 会执行credential初始化
            credential = profile.GetCredential(); // 不会执行credential初始化
            Assert.NotNull(credential);
            Assert.IsType <CredentialsBackupCompatibilityAdaptor>(credential);
        }
Exemplo n.º 2
0
        public void WithRoleSessionDurationSecondss()
        {
            DefaultProfile.ClearDefaultProfile();
            var            mock = new Mock <AlibabaCloudCredentials>();
            var            longLivedCredentials = mock.Object;
            var            roleArn  = "roleArn";
            IClientProfile profile  = DefaultProfile.GetProfile("cn-shanghai", "accessKeyId", "accessKeySecret");
            var            instance = new STSAssumeRoleSessionCredentialsProvider(longLivedCredentials, roleArn, profile);

            long roleSessionDurationSeconds = 1000;

            // No Exception
            instance.WithRoleSessionDurationSeconds(roleSessionDurationSeconds);

            Assert.Throws <ArgumentOutOfRangeException>(
                () => { instance.WithRoleSessionDurationSeconds(100); }
                );
        }
Exemplo n.º 3
0
        public void GetCredentials()
        {
            DefaultProfile.ClearDefaultProfile();

            var mock = new Mock <AlibabaCloudCredentials>();

            mock.Setup(foo => foo.GetAccessKeyId()).Returns("accessKeyId");
            mock.Setup(foo => foo.GetAccessKeySecret()).Returns("accessKeySecret");

            AlibabaCloudCredentials longLivedCredentials = mock.Object;

            IClientProfile profile = DefaultProfile.GetProfile(
                "cn-hangzhou",
                "accessKeyId",
                "accessKeySecret"
                );

            var mockInstance            = new Mock <STSAssumeRoleSessionCredentialsProvider>(longLivedCredentials, "roleArn", profile);
            AssumeRoleResponse response = new AssumeRoleResponse();

            response.Credentials                 = new AssumeRoleResponse.AssumeRole_Credentials();
            response.Credentials.AccessKeyId     = "MockAccessKeyId";
            response.Credentials.AccessKeySecret = "MockAccessKeyId";
            response.Credentials.SecurityToken   = "MockSecurityToken";

            mockInstance.Setup(foo => foo.GetResponse(
                                   It.IsAny <AssumeRoleRequest>()
                                   )).Returns(response);
            STSAssumeRoleSessionCredentialsProvider instance = mockInstance.Object;

            var credentials = instance.GetCredentials(); // 执行credential初始化

            Assert.IsType <BasicSessionCredentials>(credentials);

            var credentials2 = instance.GetCredentials(); // 不执行credential初始化,直接获取

            Assert.IsType <BasicSessionCredentials>(credentials);
            Assert.Equal(credentials.GetAccessKeyId(), credentials2.GetAccessKeyId());
            Assert.Equal(credentials.GetAccessKeySecret(), credentials2.GetAccessKeySecret());
        }
Exemplo n.º 4
0
        public void GetCredentials()
        {
            DefaultProfile.ClearDefaultProfile();

            var mockRsaPairCredential = new Mock <KeyPairCredentials>("publicKeyId", "privateKeyFile");
            var rsaPairCredential     = mockRsaPairCredential.Object;

            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 instance = new Core.Auth.Provider.RsaKeyPairCredentialProvider(rsaPairCredential, client);

            Assert.NotNull(instance.GetCredentials());
        }
Exemplo n.º 5
0
        public void GetEndpoints4()
        {
            DefaultProfile.ClearDefaultProfile();

            // Mock RegionIds
            ISet <String> regionIds = new HashSet <String>();

            regionIds.Add("cn-hangzhou");

            // Mock productDomains
            List <ProductDomain> productDomains = new List <ProductDomain>()
            {
            };
            ProductDomain productDomain = new ProductDomain("Ess", "ess.aliyuncs.com");

            productDomains.Add(productDomain);

            // Mock endpoint
            Endpoint endpoint = new Endpoint("cn-hangzhou", regionIds, productDomains);

            var mock = new Mock <DefaultProfile>(true);

            mock.Setup(foo => foo.GetEndpointByIEndpoints(
                           It.IsAny <string>(),
                           It.IsAny <string>()
                           )).Returns(endpoint);
            mock.Setup(foo => foo.GetEndpointByRemoteProvider(
                           It.IsAny <string>(),
                           It.IsAny <string>(),
                           It.IsAny <string>(),
                           It.IsAny <string>()
                           )).Returns(endpoint);

            DefaultProfile  profile   = mock.Object;
            List <Endpoint> endpoints = profile.GetEndpoints("cn-hangzhou", "Ess");

            profile.GetEndpoints("productNotExist", "regionId", "serviceCode", "endpointType");
        }
Exemplo n.º 6
0
        public void GetCredentialsWithPolicy()
        {
            DefaultProfile.ClearDefaultProfile();

            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 mockInstance = new Mock <STSAssumeRoleSessionCredentialsProvider>("roleArn", "policy", client);

            var instance = mockInstance.Object;

            var credential = instance.GetCredentials();

            Assert.NotNull(credential);
        }