コード例 #1
0
ファイル: CoreTest.cs プロジェクト: OryxLib/Oryx.FastAdmin
        public void UnicodeAndQueryTest()
        {
            if (FeatureTest.RoleArn.Equals("FakeRoleArn"))
            {
                return;
            }

            var basciCredential =
                new BasicSessionCredentials(FeatureTest.BasicAccessKeyId, FeatureTest.BasicAccessKeySecret, FeatureTest.GetToken());
            var profile = DefaultProfile.GetProfile(FeatureTest.RegionId, FeatureTest.BasicAccessKeyId, FeatureTest.BasicAccessKeySecret);
            var client  = new DefaultAcsClient(profile, basciCredential);

            var request = new CommonRequest();

            request.TimeoutInMilliSeconds = 30000;
            request.Domain     = "ros.aliyuncs.com";
            request.Version    = "2015-09-01";
            request.Action     = "DescribeResourceTypes";
            request.UriPattern = "/resource_types";
            request.Method     = MethodType.GET;
            request.QueryParameters.Add("testParams", "SDFSDFSAetTEWTEWQO(∩_∩)O哈哈~");

            var response = client.GetCommonResponse(request);

            Assert.Equal(200, response.HttpStatus);
            Assert.NotNull(response.Data);
        }
コード例 #2
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());
        }
コード例 #3
0
        public void BasicRoaTokenConnection()
        {
            if (GetRoleArn().Equals("FakeRoleArn"))
            {
                return;
            }

            DefaultProfile.ClearProfile();

            var basciCredential =
                new BasicSessionCredentials(GetBasicAccessKeyId(), GetBasicAccessKeySecret(), GetToken());
            var profile = DefaultProfile.GetProfile(regionId, GetBasicAccessKeyId(), GetBasicAccessKeySecret());
            var client  = new DefaultAcsClient(profile, basciCredential);

            var request = new CommonRequest();

            request.Domain     = "ros.aliyuncs.com";
            request.Version    = "2015-09-01";
            request.Action     = "DescribeResourceTypes";
            request.UriPattern = "/resource_types";
            request.Method     = MethodType.GET;

            var response = client.GetCommonResponse(request);

            Assert.Equal(200, response.HttpStatus);
            Assert.NotNull(response.Data);
        }
コード例 #4
0
        public virtual Task <AlibabaCloudCredentials> GetRamRoleArnAlibabaCloudCredentialAsync(CancellationToken cancellationToken)
        {
            if (string.IsNullOrEmpty(accessKeyId) || string.IsNullOrEmpty(accessKeySecret) ||
                string.IsNullOrEmpty(regionId))
            {
                throw new ClientException("Missing required variable option for 'default Client'");
            }

            var credential = new BasicSessionCredentials(accessKeyId, accessKeySecret,
                                                         STSAssumeRoleSessionCredentialsProvider.GetNewRoleSessionName(),
                                                         3600
                                                         );
            var profile = DefaultProfile.GetProfile(regionId, accessKeyId, accessKeySecret);

            STSAssumeRoleSessionCredentialsProvider stsAsssumeRoleSessionCredentialProvider;

            if (null != alibabaCloudCredentialProvider)
            {
                stsAsssumeRoleSessionCredentialProvider =
                    (STSAssumeRoleSessionCredentialsProvider)alibabaCloudCredentialProvider;
            }
            else
            {
                stsAsssumeRoleSessionCredentialProvider =
                    new STSAssumeRoleSessionCredentialsProvider(credential, roleArn, profile);
            }

            return(stsAsssumeRoleSessionCredentialProvider.GetCredentialsAsync(cancellationToken));
        }
コード例 #5
0
        public void UnicodeAndQueryTest()
        {
            if (base.GetRoleArn().Equals("FakeRoleArn"))
            {
                return;
            }

            BasicSessionCredentials basciCredential = new BasicSessionCredentials(this.GetBasicAccessKeyId(), this.GetBasicAccessKeySecret(), this.GetToken());
            DefaultProfile          profile         = DefaultProfile.GetProfile(this.regionId, this.GetBasicAccessKeyId(), this.GetBasicAccessKeySecret());
            DefaultAcsClient        client          = new DefaultAcsClient(profile, basciCredential);

            CommonRequest request = new CommonRequest();

            request.Domain     = "ros.aliyuncs.com";
            request.Version    = "2015-09-01";
            request.Action     = "DescribeResourceTypes";
            request.UriPattern = "/resource_types";
            request.Method     = MethodType.GET;
            request.QueryParameters.Add("testParams", "SDFSDFSAetTEWTEWQO(∩_∩)O哈哈~");

            CommonResponse response = client.GetCommonResponse(request);

            Assert.Equal(200, response.HttpStatus);
            Assert.NotNull(response.Data);
        }
コード例 #6
0
        protected override IAcsClient GetSecurityTokenClient(string regionId, string accessKeyId, string accessKeySecret, string securityToken)
        {
            var profile     = DefaultProfile.GetProfile(regionId);
            var credentials = new BasicSessionCredentials(accessKeyId, accessKeySecret, securityToken);

            return(new DefaultAcsClient(profile, credentials));
        }
コード例 #7
0
        public void GetCredentialFileAlibabaCloudCredentialWithRsaKey()
        {
            var basicSessionCredential = new BasicSessionCredentials("fakeak", "fakeaks", "fakesessiontoken", 4000);
            var homePath = (Environment.OSVersion.Platform == PlatformID.Unix || Environment.OSVersion.Platform == PlatformID.Unix) ?
                           Environment.GetEnvironmentVariable("HOME") :
                           Environment.ExpandEnvironmentVariables("%HOMEDRIVE%%HOMEPATH%");

            TestHelper.CreateIniFileWithRsaKey(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.GetRsaKeyPairAlibabaCloudCredential()).Returns(basicSessionCredential);
            mockDefaultCredentialProvider.Setup(x => x.GetHomePath()).Returns(homePath);
            mockDefaultCredentialProvider.Setup(x => x.LoadFileFromIni(It.IsAny <string>())).Returns(configurtion);
            var defaultCredentialProvider = mockDefaultCredentialProvider.Object;

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

            TestHelper.DeleteIniFile(homePath);
            Assert.NotNull(credential);
        }
コード例 #8
0
        public void GetCredentialFileAlibabaCloudCredentialWithRsaKey()
        {
            var basicSessionCredential = new BasicSessionCredentials("fakeak", "fakeaks", "fakesessiontoken", 4000);
            var homePath = EnvironmentUtil.GetHomePath();

            TestHelper.CreateIniFileWithRsaKey(homePath);

            var slash         = EnvironmentUtil.GetOSSlash();
            var finalLocation = EnvironmentUtil.GetComposedPath(homePath, slash);
            var configurtion  = Configuration.LoadFromFile(finalLocation);

            DefaultProfile profile = DefaultProfile.GetProfile();

            profile.DefaultClientName = "default";

            var mockDefaultCredentialProvider = new Mock <DefaultCredentialProvider>(profile, null);

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

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

            TestHelper.DeleteIniFile(homePath);
            Assert.NotNull(credential);
        }
コード例 #9
0
 public AlibabaCloudCredentials GetCredentials()
 {
     if (basicSessionCredentials == null || basicSessionCredentials.WillSoonExpire())
     {
         basicSessionCredentials = GetNewSessionCredentials();
     }
     return(basicSessionCredentials);
 }
        public async Task <AlibabaCloudCredentials> GetCredentialsAsync(CancellationToken cancellationToken)
        {
            if (basicSessionCredentials == null || basicSessionCredentials.WillSoonExpire())
            {
                basicSessionCredentials = await GetNewSessionCredentialsAsync(cancellationToken).ConfigureAwait(false);
            }

            return(basicSessionCredentials);
        }
        public void WillSoonExpire()
        {
            BasicSessionCredentials instance;

            instance = new BasicSessionCredentials("accessKeyId", "accessKeySecret", "sessionToken", 1);
            instance.WillSoonExpire();
            instance = new BasicSessionCredentials("accessKeyId", "accessKeySecret", "sessionToken", 0);
            instance.WillSoonExpire();
            Assert.False(instance.WillSoonExpire());
        }
コード例 #12
0
        public void BasicRpcStsTokenConnectionsTest()
        {
            BasicSessionCredentials basciCredential = new BasicSessionCredentials(this.GetBasicAccessKeyId(), this.GetBasicAccessKeySecret(), this.GetToken());
            DefaultProfile          profile         = DefaultProfile.GetProfile(this.regionId, this.GetBasicAccessKeyId(), this.GetBasicAccessKeySecret());
            DefaultAcsClient        client          = new DefaultAcsClient(profile, basciCredential);

            DescribeInstancesRequest  request  = new DescribeInstancesRequest();
            DescribeInstancesResponse response = client.GetAcsResponse(request);

            Assert.NotNull(response);
            Assert.True(0 <= response.TotalCount);
        }
コード例 #13
0
        public virtual AlibabaCloudCredentials GetRsaKeyPairAlibabaCloudCredential()
        {
            if (String.IsNullOrEmpty(this.publicKeyId) || String.IsNullOrEmpty(this.privateKeyFile) || String.IsNullOrEmpty(this.regionId))
            {
                throw new ClientException("Missing required variable option for 'default Client'");
            }
            RsaKeyPairCredential         rsaKeyPairCredential = new RsaKeyPairCredential(this.publicKeyId, this.privateKeyFile);
            DefaultProfile               profile           = DefaultProfile.GetProfile(this.regionId, this.publicKeyId, this.privateKeyFile);
            RsaKeyPairCredentialProvider provider          = new RsaKeyPairCredentialProvider(rsaKeyPairCredential, profile);
            BasicSessionCredentials      basicCrededential = (BasicSessionCredentials)provider.GetCredentials();

            return(basicCrededential);
        }
コード例 #14
0
        public void SignRequest()
        {
            MockRoaAcsRequest       mockRoaAcsRequest       = new MockRoaAcsRequest("product");
            HmacSHA1Signer          signer                  = new HmacSHA1Signer();
            BasicSessionCredentials basicSessionCredentials = new BasicSessionCredentials(
                "accessKeyId", "accessKeySecret", "sessionToken", 0
                );
            ProductDomain domain = new ProductDomain();

            mockRoaAcsRequest.UriPattern = "UriPattern";
            Dictionary <string, string> tmpDic = new Dictionary <string, string>
            {
                { "a", "A" },
                { "b", "B" }
            };

            mockRoaAcsRequest.BodyParameters = tmpDic;
            mockRoaAcsRequest.PathParameters = tmpDic;
            mockRoaAcsRequest.UriPattern     = "UriPattern";
            Assert.Equal("UriPattern", mockRoaAcsRequest.UriPattern);

            var request = mockRoaAcsRequest.SignRequest(signer, basicSessionCredentials, FormatType.JSON, domain);

            Assert.IsType <MockRoaAcsRequest>(request);
            basicSessionCredentials = new BasicSessionCredentials(
                "accessKeyId", "accessKeySecret", null, 0
                );
            request = mockRoaAcsRequest.SignRequest(signer, basicSessionCredentials, FormatType.JSON, domain);

            // 覆盖不同条件的执行
            mockRoaAcsRequest.BodyParameters = null;
            signer = null;
            var mockCredential = new Mock <AlibabaCloudCredentials>();

            mockCredential.Setup(foo => foo.GetAccessKeyId()).Returns("accessKeyId");
            mockCredential.Setup(foo => foo.GetAccessKeySecret()).Returns("accessKeySecret");
            AlibabaCloudCredentials credential = mockCredential.Object;

            mockRoaAcsRequest.SignRequest(signer, credential, FormatType.JSON, domain);

            signer = new HmacSHA1Signer();
            mockRoaAcsRequest.SignRequest(signer, credential, FormatType.JSON, domain);

            //Test Bearertoken SignRequest with Rpc
            mockRoaAcsRequest.BodyParameters = null;
            BearerTokenSigner     bearerTokenSigner     = new BearerTokenSigner();
            BearerTokenCredential bearerTokenCredential = new BearerTokenCredential("FakeBearerToken");

            mockRoaAcsRequest.SignRequest(bearerTokenSigner, bearerTokenCredential, FormatType.JSON, domain);
        }
コード例 #15
0
        public BasicSessionCredentials getInstance()
        {
            BasicSessionCredentials instance;

            Assert.Throws <System.ArgumentOutOfRangeException>(
                () => { instance = new BasicSessionCredentials(null, null, "", 0); }
                );

            Assert.Throws <ArgumentOutOfRangeException>(
                () => { instance = new BasicSessionCredentials("accessKeyId", null, "", 0); }
                );

            instance = new BasicSessionCredentials("accessKeyId", "accessKeySecret", "sessionToken", 1);
            return(instance);
        }
コード例 #16
0
        public void SignRequest()
        {
            var mockRpcAcsRequest       = new MockRpcAcsRequest("product");
            var signer                  = new HmacSHA1Signer();
            var basicSessionCredentials = new BasicSessionCredentials(
                "accessKeyId", "accessKeySecret", "sessionToken", 0
                );
            var domain = new ProductDomain();

            var tmpDic = new Dictionary <string, string>
            {
                { "a", "A" },
                { "b", "B" }
            };

            mockRpcAcsRequest.BodyParameters = tmpDic;
            mockRpcAcsRequest.RegionId       = "cn-hangzhou";

            var request = mockRpcAcsRequest.SignRequest(signer, basicSessionCredentials, FormatType.JSON, domain);

            Assert.IsType <MockRpcAcsRequest>(request);
            basicSessionCredentials = new BasicSessionCredentials(
                "accessKeyId", "accessKeySecret", null, 0
                );

            request = mockRpcAcsRequest.SignRequest(signer, basicSessionCredentials, FormatType.JSON, domain);

            mockRpcAcsRequest.BodyParameters = null;
            signer = null;
            var mockCredential = new Mock <AlibabaCloudCredentials>();

            mockCredential.Setup(foo => foo.GetAccessKeyId()).Returns("accessKeyId");
            mockCredential.Setup(foo => foo.GetAccessKeySecret()).Returns("accessKeySecret");
            var credential = mockCredential.Object;

            mockRpcAcsRequest.SignRequest(signer, credential, FormatType.JSON, domain);

            signer = new HmacSHA1Signer();
            mockRpcAcsRequest.SignRequest(signer, credential, FormatType.JSON, domain);

            // Test BearerToken SignRequest with Rpc
            mockRpcAcsRequest.BodyParameters = null;
            var bearerTokenSigner     = new BearerTokenSigner();
            var bearerTokenCredential = new BearerTokenCredential("FakeBearerToken");

            mockRpcAcsRequest.SignRequest(bearerTokenSigner, bearerTokenCredential, FormatType.JSON, domain);
        }
コード例 #17
0
        public void BasicRpcStsTokenConnectionsTest()
        {
            if (GetRoleArn().Equals("FakeRoleArn"))
            {
                return;
            }
            DefaultProfile.ClearProfile();
            var basciCredential =
                new BasicSessionCredentials(GetBasicAccessKeyId(), GetBasicAccessKeySecret(), GetToken());
            var profile = DefaultProfile.GetProfile(regionId, GetBasicAccessKeyId(), GetBasicAccessKeySecret());
            var client  = new DefaultAcsClient(profile, basciCredential);

            var request  = new DescribeAccessControlListsRequest();
            var response = client.GetAcsResponse(request);

            Assert.NotNull(response);
        }
        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);
        }
コード例 #19
0
        public void BasicRoaTokenConnection()
        {
            BasicSessionCredentials basciCredential = new BasicSessionCredentials(this.GetBasicAccessKeyId(), this.GetBasicAccessKeySecret(), this.GetToken());
            DefaultProfile          profile         = DefaultProfile.GetProfile(this.regionId, this.GetBasicAccessKeyId(), this.GetBasicAccessKeySecret());
            DefaultAcsClient        client          = new DefaultAcsClient(profile, basciCredential);

            CommonRequest request = new CommonRequest();

            request.Domain     = "ros.aliyuncs.com";
            request.Version    = "2015-09-01";
            request.Action     = "DescribeResourceTypes";
            request.UriPattern = "/resource_types";
            request.Method     = MethodType.GET;

            CommonResponse response = client.GetCommonResponse(request);

            Assert.Equal(200, response.HttpStatus);
            Assert.NotNull(response.Data);
        }
コード例 #20
0
        public void SignRequest()
        {
            MockRpcAcsRequest       mockRpcAcsRequest       = new MockRpcAcsRequest("product");
            HmacSHA1Signer          signer                  = new HmacSHA1Signer();
            BasicSessionCredentials basicSessionCredentials = new BasicSessionCredentials(
                "accessKeyId", "accessKeySecret", "sessionToken", 0
                );
            ProductDomain domain = new ProductDomain();

            Dictionary <string, string> tmpDic = new Dictionary <string, string>
            {
                { "a", "A" },
                { "b", "B" }
            };

            mockRpcAcsRequest.BodyParameters = tmpDic;
            mockRpcAcsRequest.RegionId       = "cn-hangzhou";

            var request = mockRpcAcsRequest.SignRequest(signer, basicSessionCredentials, FormatType.JSON, domain);

            Assert.IsType <MockRpcAcsRequest>(request);
            basicSessionCredentials = new BasicSessionCredentials(
                "accessKeyId", "accessKeySecret", null, 0
                );

            request = mockRpcAcsRequest.SignRequest(signer, basicSessionCredentials, FormatType.JSON, domain);

            // 覆盖不同条件的执行
            mockRpcAcsRequest.BodyParameters = null;
            signer = null;
            var mockCredential = new Mock <AlibabaCloudCredentials>();

            mockCredential.Setup(foo => foo.GetAccessKeyId()).Returns("accessKeyId");
            mockCredential.Setup(foo => foo.GetAccessKeySecret()).Returns("accessKeySecret");
            AlibabaCloudCredentials credential = mockCredential.Object;

            mockRpcAcsRequest.SignRequest(signer, credential, FormatType.JSON, domain);

            signer = new HmacSHA1Signer();
            mockRpcAcsRequest.SignRequest(signer, credential, FormatType.JSON, domain);

            // Done With No Exception
        }
        public void GetCredentialFileAlibabaCloudCredentialWithRsaKey()
        {
            var basicSessionCredential = new BasicSessionCredentials("fakeak", "fakeaks", "fakesessiontoken", 4000);
            var mockHomePath           = EnvironmentUtil.GetHomePath();

            TestHelper.CreateIniFileWithRsaKey();

            DefaultProfile profile = DefaultProfile.GetProfile();

            profile.DefaultClientName = "default";

            var mockDefaultCredentialProvider = new Mock <DefaultCredentialProvider>(profile, null);

            mockDefaultCredentialProvider.Setup(x => x.GetRsaKeyPairAlibabaCloudCredential()).Returns(basicSessionCredential);
            mockDefaultCredentialProvider.Setup(x => x.GetHomePath()).Returns(mockHomePath);

            var defaultCredentialProvider = mockDefaultCredentialProvider.Object;

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

            TestHelper.DeleteIniFile();
            Assert.NotNull(credential);
        }