예제 #1
0
        protected override CredentialsRefreshState GenerateNewCredentials()
        {
            SecurityCredentials securityCredentials = null;
            Uri           uri           = new Uri(Server + Uri);
            JitteredDelay jitteredDelay = new JitteredDelay(new TimeSpan(0, 0, 0, 0, 200), new TimeSpan(0, 0, 0, 0, 50));
            int           num           = 1;

            while (true)
            {
                try
                {
                    securityCredentials = URIBasedRefreshingCredentialHelper.GetObjectFromResponse <SecurityCredentials>(uri);
                    if (securityCredentials != null)
                    {
                        break;
                    }
                }
                catch (Exception ex)
                {
                    if (num == MaxRetries)
                    {
                        throw new AmazonServiceException(string.Format(CultureInfo.InvariantCulture, "Unable to retrieve credentials. Message = \"{0}\".", ex.Message));
                    }
                }
                AWSSDKUtils.Sleep(jitteredDelay.Next());
                num++;
            }
            return(new CredentialsRefreshState
            {
                Credentials = new ImmutableCredentials(securityCredentials.AccessKeyId, securityCredentials.SecretAccessKey, securityCredentials.Token),
                Expiration = securityCredentials.Expiration
            });
        }
 private SecurityCredentials GetRoleCredentials()
 {
     return(URIBasedRefreshingCredentialHelper.GetObjectFromResponse <SecurityCredentials>(CurrentRoleUri));
 }
 private static SecurityInfo GetServiceInfo()
 {
     return(URIBasedRefreshingCredentialHelper.GetObjectFromResponse <SecurityInfo>(InfoUri));
 }