in aliyun-net-sdk-core/Auth/Provider/InstanceProfileCredentialsProvider.cs [60:99]
public virtual AlibabaCloudCredentials GetCredentials()
{
try
{
if (credentials == null)
{
credentials = fetcher.Fetch(maxRetryTimes);
}
if (credentials.IsExpired())
{
throw new ClientException("SDK.SessionTokenExpired", "Current session token has expired.");
}
if (!credentials.WillSoonExpire() || !credentials.ShouldRefresh())
{
return credentials;
}
credentials = fetcher.Fetch();
return credentials;
}
catch (ClientException ex)
{
if (ex.ErrorCode != null && ex.ErrorCode.Equals("SDK.SessionTokenExpired") &&
ex.ErrorMessage != null && ex.ErrorMessage.Equals("Current session token has expired."))
{
CommonLog.LogException(ex, ex.ErrorCode, ex.ErrorMessage);
throw new ClientException(ex.ErrorCode, ex.ErrorMessage);
}
// Use the current expiring session token and wait for next round
if (credentials != null)
{
credentials.SetLastFailedRefreshTime();
}
}
return credentials;
}