public void GetRoleName(IConnClient client)
        {
            HttpRequest httpRequest = new HttpRequest();

            httpRequest.Method         = MethodType.Get;
            httpRequest.ConnectTimeout = connectionTimeout;
            httpRequest.ReadTimeout    = readTimeout;
            httpRequest.Url            = credentialUrl;
            HttpResponse httpResponse;

            try
            {
                httpResponse = client.DoAction(httpRequest);
            }
            catch (Exception ex)
            {
                throw new CredentialException("Failed to connect ECS Metadata Service: " + ex.Message);
            }

            if (httpResponse != null && httpResponse.Status != 200)
            {
                throw new CredentialException(EcsMetadatFetchErrorMsg + " HttpCode=" + httpResponse.Status);
            }

            roleName = httpResponse.GetHttpContentString();
        }
Exemple #2
0
 public ConnPublicApiClientFactory(
     IAccessTokenClient arg0,
     IConnClient arg1
     )
 {
     field0 = arg0;
     field1 = arg1;
 }
Exemple #3
0
 public WebHookEventValidator(
     IWebHookSettingsService arg0,
     IConnClient arg1
     )
 {
     field0 = arg0;
     field1 = arg1;
 }
        private IAlibabaCloudCredentials GetNewSessionCredentials(IConnClient client)
        {
            HttpRequest httpRequest = new HttpRequest();

            httpRequest.Method         = MethodType.Get;
            httpRequest.ConnectTimeout = connectionTimeout;
            httpRequest.ReadTimeout    = readTimeout;
            httpRequest.Url            = credentialUrl;
            HttpResponse httpResponse;
            string       jsonContent;
            string       contentCode;
            string       contentAccessKeyId;
            string       contentAccessKeySecret;
            string       contentSecurityToken;
            string       contentExpiration;

            try
            {
                httpResponse = client.DoAction(httpRequest);
            }
            catch (Exception ex)
            {
                throw new CredentialException("Failed to connect ECS Metadata Service: " + ex.Message);
            }

            if (httpResponse != null && httpResponse.Status != 200)
            {
                throw new CredentialException(EcsMetadatFetchErrorMsg + " HttpCode=" + httpResponse.Status);
            }

            jsonContent = httpResponse.GetHttpContentString();
            dynamic contentObj = JsonConvert.DeserializeObject <dynamic>(jsonContent);

            try
            {
                contentCode            = contentObj.Code;
                contentAccessKeyId     = contentObj.AccessKeyId;
                contentAccessKeySecret = contentObj.AccessKeySecret;
                contentSecurityToken   = contentObj.SecurityToken;
                contentExpiration      = contentObj.Expiration;
            }
            catch
            {
                throw new CredentialException("Invalid json got from ECS Metadata service.");
            }

            if (contentCode != "Success")
            {
                throw new CredentialException(EcsMetadatFetchErrorMsg);
            }

            string expirationStr = contentExpiration.Replace('T', ' ').Replace('Z', ' ');
            var    dt            = Convert.ToDateTime(expirationStr);
            long   expiration    = dt.GetTimeMillis();

            return(new EcsRamRoleCredential(contentAccessKeyId, contentAccessKeySecret, contentSecurityToken,
                                            expiration, this));
        }
Exemple #5
0
 public WebHookRegistrationService(
     IConnClient arg0,
     IWebHookService arg1,
     ILogger arg2
     )
 {
     field0 = arg0;
     field1 = arg1;
     field2 = arg2;
 }
Exemple #6
0
 public UniqueUserToConnChangeNotifier(
     IUniqueUserVersionHandlerRepository arg0,
     IConnClient arg1,
     IConnClientService arg2,
     IConnUserService arg3,
     IUniqueUserToConnHelperService arg4
     )
 {
     field0 = arg0;
     field1 = arg1;
     field2 = arg2;
     field3 = arg3;
     field4 = arg4;
 }
Exemple #7
0
 public ConnEmailChangeService(
     IHttpClientFactory arg0,
     IAccessTokenClient arg1,
     IConnClient arg2,
     IConnErrorFactory arg3,
     IConnPublicApiClientFactory arg4
     )
 {
     field0 = arg0;
     field1 = arg1;
     field2 = arg2;
     field3 = arg3;
     field4 = arg4;
 }
Exemple #8
0
 public WebHookEventHandler(
     IEventHandlerBackgroundService arg0,
     IUniqueUserService arg1,
     IConnClient arg2,
     ICountryService arg3,
     ILanguageService arg4
     )
 {
     field0 = arg0;
     field1 = arg1;
     field2 = arg2;
     field3 = arg3;
     field4 = arg4;
 }
        private async Task <IAlibabaCloudCredentials> GetNewSessionCredentialsAsync(IConnClient client)
        {
            HttpRequest httpRequest = new HttpRequest();

            httpRequest.SetCommonUrlParameters();
            httpRequest.AddUrlParameter("Action", "AssumeRole");
            httpRequest.AddUrlParameter("Format", "JSON");
            httpRequest.AddUrlParameter("Version", "2015-04-01");
            httpRequest.AddUrlParameter("DurationSeconds", durationSeconds.ToString());
            httpRequest.AddUrlParameter("RoleArn", this.roleArn);
            httpRequest.AddUrlParameter("AccessKeyId", this.accessKeyId);
            httpRequest.AddUrlParameter("RegionId", this.regionId);
            httpRequest.AddUrlParameter("RoleSessionName", this.roleSessionName);
            if (policy != null)
            {
                httpRequest.AddUrlParameter("Policy", this.policy);
            }

            httpRequest.Method         = MethodType.Get;
            httpRequest.ConnectTimeout = connectTimeout;
            httpRequest.ReadTimeout    = readTimeout;
            string strToSign = ParameterHelper.ComposeStringToSign(MethodType.Get, httpRequest.UrlParameters);
            string signature = ParameterHelper.SignString(strToSign, accessKeySecret + "&");

            httpRequest.AddUrlParameter("Signature", signature);
            httpRequest.Url = ParameterHelper.ComposeUrl("sts.aliyuncs.com", httpRequest.UrlParameters,
                                                         "https");
            HttpResponse httpResponse = await client.DoActionAsync(httpRequest);

            Dictionary <string, object> map =
                JsonConvert.DeserializeObject <Dictionary <string, object> >(httpResponse.GetHttpContentString());

            if (map.ContainsKey("Credentials"))
            {
                string credentialsJson = JsonConvert.SerializeObject(DictionaryUtil.Get(map, "Credentials"));
                Dictionary <string, string> credentials =
                    JsonConvert.DeserializeObject <Dictionary <string, string> >(credentialsJson);
                string expirationStr =
                    DictionaryUtil.Get(credentials, "Expiration").Replace('T', ' ').Replace('Z', ' ');
                var  dt         = Convert.ToDateTime(expirationStr);
                long expiration = dt.GetTimeMillis();
                accessKeyId     = DictionaryUtil.Get(credentials, "AccessKeyId");
                accessKeySecret = DictionaryUtil.Get(credentials, "AccessKeySecret");
                securityToken   = DictionaryUtil.Get(credentials, "SecurityToken");
                return(new RamRoleArnCredential(accessKeyId, accessKeySecret, securityToken, expiration, this));
            }

            throw new CredentialException(JsonConvert.SerializeObject(map));
        }
        public void Registor(string name, int quantity)
        {
            //var ht = HttpContext.Current;
            // Grab the client callback channel.
            _client = OperationContext.Current.GetCallbackChannel<IConnClient>();

            _orderName = name;
            _orderQuantity = quantity;

            // Pretend service is processing and will call client back in 5 seconds.
            using (var timer = new Timer(new TimerCallback(CallClient), null, 5000, 5000))
            {
                Thread.Sleep(11000);
            }
        }
        private IAlibabaCloudCredentials GetNewSessionCredentials(IConnClient client)
        {
            HttpRequest httpRequest = new HttpRequest();

            httpRequest.SetCommonUrlParameters();
            httpRequest.AddUrlParameter("Action", "GenerateSessionAccessKey");
            httpRequest.AddUrlParameter("Format", "JSON");
            httpRequest.AddUrlParameter("Version", "2015-04-01");
            httpRequest.AddUrlParameter("DurationSeconds", durationSeconds.ToString());
            httpRequest.AddUrlParameter("AccessKeyId", PublicKeyId);
            httpRequest.AddUrlParameter("RegionId", regionId);
            string strToSign = ParameterHelper.ComposeStringToSign(MethodType.Get, httpRequest.UrlParameters);
            String signature = ParameterHelper.SignString(strToSign, PrivateKey + "&");

            httpRequest.AddUrlParameter("Signature", signature);
            httpRequest.Method         = MethodType.Get;
            httpRequest.ConnectTimeout = connectTimeout;
            httpRequest.ReadTimeout    = readTimeout;
            httpRequest.Url            = ParameterHelper.ComposeUrl("sts.aliyuncs.com", httpRequest.UrlParameters, "https");
            HttpResponse httpResponse = client.DoAction(httpRequest);

            if (httpResponse != null && httpResponse.Status != 200)
            {
                throw new CredentialException("Failed to get session credentials.HttpCode=" + httpResponse.Status);
            }

            Debug.Assert(httpResponse != null, "httpResponse != null");
            dynamic contentObj = JsonConvert.DeserializeObject <dynamic>(httpResponse.GetHttpContentString());
            string  sessionAccessKeyId;
            string  sessionAccessKeySecret;
            string  expirationStr;

            try
            {
                sessionAccessKeyId     = contentObj.SessionAccessKey.SessionAccessKeyId;
                sessionAccessKeySecret = contentObj.SessionAccessKey.SessionAccessKeySecret;
                expirationStr          = contentObj.SessionAccessKey.Expiration;
            }
            catch
            {
                throw new CredentialException("Invalid json got from service.");
            }
            expirationStr = expirationStr.Replace('T', ' ').Replace('Z', ' ');
            var  dt         = Convert.ToDateTime(expirationStr);
            long expiration = dt.GetTimeMillis();

            return(new RsaKeyPairCredential(sessionAccessKeyId, sessionAccessKeySecret, expiration, this));
        }
Exemple #12
0
 public ConnClientService(
     IHttpClientFactory arg0,
     IAccessTokenClient arg1,
     IConnConfiguration arg2,
     IConnClient arg3,
     IConnErrorFactory arg4,
     IConnPublicApiClientFactory arg5
     )
 {
     field0 = arg0;
     field1 = arg1;
     field2 = arg2;
     field3 = arg3;
     field4 = arg4;
     field5 = arg5;
 }
Exemple #13
0
 private IAlibabaCloudCredentials CreateCredential(IConnClient client)
 {
     return(GetNewSessionCredentials(client));
 }
 private async Task <IAlibabaCloudCredentials> CreateCredentialAsync(IConnClient client)
 {
     return(await GetNewSessionCredentialsAsync(client));
 }