Skip to content

Commit

Permalink
refactor: solve the inconsistency of credentials refresh in all methods
Browse files Browse the repository at this point in the history
  • Loading branch information
yndu13 committed Sep 19, 2024
1 parent 8af550f commit d027945
Show file tree
Hide file tree
Showing 15 changed files with 285 additions and 253 deletions.
88 changes: 48 additions & 40 deletions csharp/core/Client.cs
Original file line number Diff line number Diff line change
Expand Up @@ -264,18 +264,19 @@ public Dictionary<string, object> DoRPCRequest(string action, string version, st
}
if (!AlibabaCloud.TeaUtil.Common.EqualString(authType, "Anonymous"))
{
string credentialType = GetType();
Aliyun.Credentials.Models.CredentialModel credentialModel = this._credential.GetCredential();
string credentialType = credentialModel.Type;
if (AlibabaCloud.TeaUtil.Common.EqualString(credentialType, "bearer"))
{
string bearerToken = GetBearerToken();
string bearerToken = credentialModel.BearerToken;
request_.Query["BearerToken"] = bearerToken;
request_.Query["SignatureType"] = "BEARERTOKEN";
}
else
{
string accessKeyId = GetAccessKeyId();
string accessKeySecret = GetAccessKeySecret();
string securityToken = GetSecurityToken();
string accessKeyId = credentialModel.AccessKeyId;
string accessKeySecret = credentialModel.AccessKeySecret;
string securityToken = credentialModel.SecurityToken;
if (!AlibabaCloud.TeaUtil.Common.Empty(securityToken))
{
request_.Query["SecurityToken"] = securityToken;
Expand Down Expand Up @@ -535,18 +536,19 @@ public async Task<Dictionary<string, object>> DoRPCRequestAsync(string action, s
}
if (!AlibabaCloud.TeaUtil.Common.EqualString(authType, "Anonymous"))
{
string credentialType = await GetTypeAsync();
Aliyun.Credentials.Models.CredentialModel credentialModel = await this._credential.GetCredentialAsync();
string credentialType = credentialModel.Type;
if (AlibabaCloud.TeaUtil.Common.EqualString(credentialType, "bearer"))
{
string bearerToken = await GetBearerTokenAsync();
string bearerToken = credentialModel.BearerToken;
request_.Query["BearerToken"] = bearerToken;
request_.Query["SignatureType"] = "BEARERTOKEN";
}
else
{
string accessKeyId = await GetAccessKeyIdAsync();
string accessKeySecret = await GetAccessKeySecretAsync();
string securityToken = await GetSecurityTokenAsync();
string accessKeyId = credentialModel.AccessKeyId;
string accessKeySecret = credentialModel.AccessKeySecret;
string securityToken = credentialModel.SecurityToken;
if (!AlibabaCloud.TeaUtil.Common.Empty(securityToken))
{
request_.Query["SecurityToken"] = securityToken;
Expand Down Expand Up @@ -789,18 +791,19 @@ public Dictionary<string, object> DoROARequest(string action, string version, st
}
if (!AlibabaCloud.TeaUtil.Common.EqualString(authType, "Anonymous"))
{
string credentialType = GetType();
Aliyun.Credentials.Models.CredentialModel credentialModel = this._credential.GetCredential();
string credentialType = credentialModel.Type;
if (AlibabaCloud.TeaUtil.Common.EqualString(credentialType, "bearer"))
{
string bearerToken = GetBearerToken();
string bearerToken = credentialModel.BearerToken;
request_.Headers["x-acs-bearer-token"] = bearerToken;
request_.Headers["x-acs-signature-type"] = "BEARERTOKEN";
}
else
{
string accessKeyId = GetAccessKeyId();
string accessKeySecret = GetAccessKeySecret();
string securityToken = GetSecurityToken();
string accessKeyId = credentialModel.AccessKeyId;
string accessKeySecret = credentialModel.AccessKeySecret;
string securityToken = credentialModel.SecurityToken;
if (!AlibabaCloud.TeaUtil.Common.Empty(securityToken))
{
request_.Headers["x-acs-accesskey-id"] = accessKeyId;
Expand Down Expand Up @@ -1040,18 +1043,19 @@ public async Task<Dictionary<string, object>> DoROARequestAsync(string action, s
}
if (!AlibabaCloud.TeaUtil.Common.EqualString(authType, "Anonymous"))
{
string credentialType = await GetTypeAsync();
Aliyun.Credentials.Models.CredentialModel credentialModel = await this._credential.GetCredentialAsync();
string credentialType = credentialModel.Type;
if (AlibabaCloud.TeaUtil.Common.EqualString(credentialType, "bearer"))
{
string bearerToken = await GetBearerTokenAsync();
string bearerToken = credentialModel.BearerToken;
request_.Headers["x-acs-bearer-token"] = bearerToken;
request_.Headers["x-acs-signature-type"] = "BEARERTOKEN";
}
else
{
string accessKeyId = await GetAccessKeyIdAsync();
string accessKeySecret = await GetAccessKeySecretAsync();
string securityToken = await GetSecurityTokenAsync();
string accessKeyId = credentialModel.AccessKeyId;
string accessKeySecret = credentialModel.AccessKeySecret;
string securityToken = credentialModel.SecurityToken;
if (!AlibabaCloud.TeaUtil.Common.Empty(securityToken))
{
request_.Headers["x-acs-accesskey-id"] = accessKeyId;
Expand Down Expand Up @@ -1292,18 +1296,19 @@ public Dictionary<string, object> DoROARequestWithForm(string action, string ver
}
if (!AlibabaCloud.TeaUtil.Common.EqualString(authType, "Anonymous"))
{
string credentialType = GetType();
Aliyun.Credentials.Models.CredentialModel credentialModel = this._credential.GetCredential();
string credentialType = credentialModel.Type;
if (AlibabaCloud.TeaUtil.Common.EqualString(credentialType, "bearer"))
{
string bearerToken = GetBearerToken();
string bearerToken = credentialModel.BearerToken;
request_.Headers["x-acs-bearer-token"] = bearerToken;
request_.Headers["x-acs-signature-type"] = "BEARERTOKEN";
}
else
{
string accessKeyId = GetAccessKeyId();
string accessKeySecret = GetAccessKeySecret();
string securityToken = GetSecurityToken();
string accessKeyId = credentialModel.AccessKeyId;
string accessKeySecret = credentialModel.AccessKeySecret;
string securityToken = credentialModel.SecurityToken;
if (!AlibabaCloud.TeaUtil.Common.Empty(securityToken))
{
request_.Headers["x-acs-accesskey-id"] = accessKeyId;
Expand Down Expand Up @@ -1542,18 +1547,19 @@ public async Task<Dictionary<string, object>> DoROARequestWithFormAsync(string a
}
if (!AlibabaCloud.TeaUtil.Common.EqualString(authType, "Anonymous"))
{
string credentialType = await GetTypeAsync();
Aliyun.Credentials.Models.CredentialModel credentialModel = await this._credential.GetCredentialAsync();
string credentialType = credentialModel.Type;
if (AlibabaCloud.TeaUtil.Common.EqualString(credentialType, "bearer"))
{
string bearerToken = await GetBearerTokenAsync();
string bearerToken = credentialModel.BearerToken;
request_.Headers["x-acs-bearer-token"] = bearerToken;
request_.Headers["x-acs-signature-type"] = "BEARERTOKEN";
}
else
{
string accessKeyId = await GetAccessKeyIdAsync();
string accessKeySecret = await GetAccessKeySecretAsync();
string securityToken = await GetSecurityTokenAsync();
string accessKeyId = credentialModel.AccessKeyId;
string accessKeySecret = credentialModel.AccessKeySecret;
string securityToken = credentialModel.SecurityToken;
if (!AlibabaCloud.TeaUtil.Common.Empty(securityToken))
{
request_.Headers["x-acs-accesskey-id"] = accessKeyId;
Expand Down Expand Up @@ -1827,10 +1833,11 @@ public Dictionary<string, object> DoRequest(Params params_, OpenApiRequest reque
request_.Headers["x-acs-content-sha256"] = hashedRequestPayload;
if (!AlibabaCloud.TeaUtil.Common.EqualString(params_.AuthType, "Anonymous"))
{
string authType = GetType();
Aliyun.Credentials.Models.CredentialModel credentialModel = this._credential.GetCredential();
string authType = credentialModel.Type;
if (AlibabaCloud.TeaUtil.Common.EqualString(authType, "bearer"))
{
string bearerToken = GetBearerToken();
string bearerToken = credentialModel.BearerToken;
request_.Headers["x-acs-bearer-token"] = bearerToken;
if (AlibabaCloud.TeaUtil.Common.EqualString(params_.Style, "RPC"))
{
Expand All @@ -1843,9 +1850,9 @@ public Dictionary<string, object> DoRequest(Params params_, OpenApiRequest reque
}
else
{
string accessKeyId = GetAccessKeyId();
string accessKeySecret = GetAccessKeySecret();
string securityToken = GetSecurityToken();
string accessKeyId = credentialModel.AccessKeyId;
string accessKeySecret = credentialModel.AccessKeySecret;
string securityToken = credentialModel.SecurityToken;
if (!AlibabaCloud.TeaUtil.Common.Empty(securityToken))
{
request_.Headers["x-acs-accesskey-id"] = accessKeyId;
Expand Down Expand Up @@ -2123,10 +2130,11 @@ public async Task<Dictionary<string, object>> DoRequestAsync(Params params_, Ope
request_.Headers["x-acs-content-sha256"] = hashedRequestPayload;
if (!AlibabaCloud.TeaUtil.Common.EqualString(params_.AuthType, "Anonymous"))
{
string authType = await GetTypeAsync();
Aliyun.Credentials.Models.CredentialModel credentialModel = await this._credential.GetCredentialAsync();
string authType = credentialModel.Type;
if (AlibabaCloud.TeaUtil.Common.EqualString(authType, "bearer"))
{
string bearerToken = await GetBearerTokenAsync();
string bearerToken = credentialModel.BearerToken;
request_.Headers["x-acs-bearer-token"] = bearerToken;
if (AlibabaCloud.TeaUtil.Common.EqualString(params_.Style, "RPC"))
{
Expand All @@ -2139,9 +2147,9 @@ public async Task<Dictionary<string, object>> DoRequestAsync(Params params_, Ope
}
else
{
string accessKeyId = await GetAccessKeyIdAsync();
string accessKeySecret = await GetAccessKeySecretAsync();
string securityToken = await GetSecurityTokenAsync();
string accessKeyId = credentialModel.AccessKeyId;
string accessKeySecret = credentialModel.AccessKeySecret;
string securityToken = credentialModel.SecurityToken;
if (!AlibabaCloud.TeaUtil.Common.Empty(securityToken))
{
request_.Headers["x-acs-accesskey-id"] = accessKeyId;
Expand Down
4 changes: 2 additions & 2 deletions csharp/core/Properties/AssemblyInfo.cs
Original file line number Diff line number Diff line change
Expand Up @@ -29,5 +29,5 @@
// Build Number
// Revision
//
[assembly : AssemblyVersion("0.1.10.0")]
[assembly : AssemblyFileVersion("0.1.10.0")]
[assembly : AssemblyVersion("0.1.11.0")]
[assembly : AssemblyFileVersion("0.1.11.0")]
4 changes: 2 additions & 2 deletions csharp/core/client.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -41,10 +41,10 @@
<IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
</PackageReference>
<PackageReference Include="AlibabaCloud.TeaUtil" Version="0.1.19"/>
<PackageReference Include="Aliyun.Credentials" Version="1.3.2"/>
<PackageReference Include="Aliyun.Credentials" Version="1.4.2"/>
<PackageReference Include="AlibabaCloud.OpenApiUtil" Version="1.1.1"/>
<PackageReference Include="Tea" Version="1.0.11"/>
<PackageReference Include="AlibabaCloud.GatewaySpi" Version="0.0.2"/>
<PackageReference Include="AlibabaCloud.GatewaySpi" Version="0.0.3"/>
<PackageReference Include="AlibabaCloud.TeaXML" Version="0.0.5"/>
</ItemGroup>
</Project>
81 changes: 18 additions & 63 deletions golang/client/client.go
Original file line number Diff line number Diff line change
Expand Up @@ -733,35 +733,20 @@ func (client *Client) DoRPCRequest(action *string, version *string, protocol *st
}

if !tea.BoolValue(util.EqualString(authType, tea.String("Anonymous"))) {
credentialType, _err := client.GetType()
credentialModel, _err := client.Credential.GetCredential()
if _err != nil {
return _result, _err
}

credentialType := credentialModel.Type
if tea.BoolValue(util.EqualString(credentialType, tea.String("bearer"))) {
bearerToken, _err := client.GetBearerToken()
if _err != nil {
return _result, _err
}

bearerToken := credentialModel.BearerToken
request_.Query["BearerToken"] = bearerToken
request_.Query["SignatureType"] = tea.String("BEARERTOKEN")
} else {
accessKeyId, _err := client.GetAccessKeyId()
if _err != nil {
return _result, _err
}

accessKeySecret, _err := client.GetAccessKeySecret()
if _err != nil {
return _result, _err
}

securityToken, _err := client.GetSecurityToken()
if _err != nil {
return _result, _err
}

accessKeyId := credentialModel.AccessKeyId
accessKeySecret := credentialModel.AccessKeySecret
securityToken := credentialModel.SecurityToken
if !tea.BoolValue(util.Empty(securityToken)) {
request_.Query["SecurityToken"] = securityToken
}
Expand Down Expand Up @@ -1019,35 +1004,20 @@ func (client *Client) DoROARequest(action *string, version *string, protocol *st
}

if !tea.BoolValue(util.EqualString(authType, tea.String("Anonymous"))) {
credentialType, _err := client.GetType()
credentialModel, _err := client.Credential.GetCredential()
if _err != nil {
return _result, _err
}

credentialType := credentialModel.Type
if tea.BoolValue(util.EqualString(credentialType, tea.String("bearer"))) {
bearerToken, _err := client.GetBearerToken()
if _err != nil {
return _result, _err
}

bearerToken := credentialModel.BearerToken
request_.Headers["x-acs-bearer-token"] = bearerToken
request_.Headers["x-acs-signature-type"] = tea.String("BEARERTOKEN")
} else {
accessKeyId, _err := client.GetAccessKeyId()
if _err != nil {
return _result, _err
}

accessKeySecret, _err := client.GetAccessKeySecret()
if _err != nil {
return _result, _err
}

securityToken, _err := client.GetSecurityToken()
if _err != nil {
return _result, _err
}

accessKeyId := credentialModel.AccessKeyId
accessKeySecret := credentialModel.AccessKeySecret
securityToken := credentialModel.SecurityToken
if !tea.BoolValue(util.Empty(securityToken)) {
request_.Headers["x-acs-accesskey-id"] = accessKeyId
request_.Headers["x-acs-security-token"] = securityToken
Expand Down Expand Up @@ -1307,35 +1277,20 @@ func (client *Client) DoROARequestWithForm(action *string, version *string, prot
}

if !tea.BoolValue(util.EqualString(authType, tea.String("Anonymous"))) {
credentialType, _err := client.GetType()
credentialModel, _err := client.Credential.GetCredential()
if _err != nil {
return _result, _err
}

credentialType := credentialModel.Type
if tea.BoolValue(util.EqualString(credentialType, tea.String("bearer"))) {
bearerToken, _err := client.GetBearerToken()
if _err != nil {
return _result, _err
}

bearerToken := credentialModel.BearerToken
request_.Headers["x-acs-bearer-token"] = bearerToken
request_.Headers["x-acs-signature-type"] = tea.String("BEARERTOKEN")
} else {
accessKeyId, _err := client.GetAccessKeyId()
if _err != nil {
return _result, _err
}

accessKeySecret, _err := client.GetAccessKeySecret()
if _err != nil {
return _result, _err
}

securityToken, _err := client.GetSecurityToken()
if _err != nil {
return _result, _err
}

accessKeyId := credentialModel.AccessKeyId
accessKeySecret := credentialModel.AccessKeySecret
securityToken := credentialModel.SecurityToken
if !tea.BoolValue(util.Empty(securityToken)) {
request_.Headers["x-acs-accesskey-id"] = accessKeyId
request_.Headers["x-acs-security-token"] = securityToken
Expand Down
Loading

0 comments on commit d027945

Please sign in to comment.