in aliyun-net-credentials/Provider/OIDCRoleArnCredentialProvider.cs [91:118]
private OIDCRoleArnCredentialProvider(Builder builder): base(builder)
{
this.durationSeconds = (builder.durationSeconds == null || builder.durationSeconds == 0) ? 3600 : builder.durationSeconds.Value;
if (this.durationSeconds < 900)
{
throw new CredentialException("Session duration should be in the range of 900s - max session duration");
}
this.roleSessionName = string.IsNullOrEmpty(builder.roleSessionName)
? Environment.GetEnvironmentVariable("ALIBABA_CLOUD_ROLE_SESSION_NAME")
?? "credentials-csharp-" + (DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc)).TotalMilliseconds
: builder.roleSessionName;
this.regionId = string.IsNullOrEmpty(builder.regionId) ? "cn-hangzhou" : builder.regionId;
this.roleArn = string.IsNullOrEmpty(builder.roleArn) ? Environment.GetEnvironmentVariable("ALIBABA_CLOUD_ROLE_ARN") : builder.roleArn;
this.connectTimeout = (builder.connectTimeout == null || builder.connectTimeout <= 0) ? 5000 : builder.connectTimeout.Value;
this.readTimeout = (builder.readTimeout == null || builder.readTimeout <= 0) ? 10000 : builder.readTimeout.Value;
this.oidcProviderArn = string.IsNullOrEmpty(builder.oidcProviderArn)
? Environment.GetEnvironmentVariable("ALIBABA_CLOUD_OIDC_PROVIDER_ARN")
: builder.oidcProviderArn;
this.oidcTokenFilePath = string.IsNullOrEmpty(builder.oidcTokenFilePath)
? Environment.GetEnvironmentVariable("ALIBABA_CLOUD_OIDC_TOKEN_FILE")
: builder.oidcTokenFilePath;
this.policy = builder.policy;
this.STSEndpoint = builder.stsEndpoint;
if (string.IsNullOrEmpty(builder.stsEndpoint))
{
this.STSEndpoint = string.Format("sts{0}.aliyuncs.com", AuthUtils.GetStsRegionWithVpc(builder.stsRegionId, builder.enableVpc));
}
}