in sdk/auth/credentials/cli_profile_credentials_provider.go [184:231]
func (provider *CLIProfileCredentialsProvider) GetCredentials() (cc *Credentials, err error) {
if strings.ToLower(os.Getenv("ALIBABA_CLOUD_CLI_PROFILE_DISABLED")) == "true" {
err = errors.NewClientError(errors.InvalidParamErrorCode, "The CLI profile is disabled", nil)
return
}
if provider.innerProvider == nil {
homedir := getHomePath()
if homedir == "" {
err = fmt.Errorf("cannot found home dir")
return
}
cfgPath := path.Join(homedir, ".aliyun/config.json")
var conf *configuration
conf, err = newConfigurationFromPath(cfgPath)
if err != nil {
return
}
if provider.profileName == "" {
provider.profileName = conf.Current
}
provider.innerProvider, err = provider.getCredentialsProvider(conf, provider.profileName)
if err != nil {
return
}
}
innerCC, err := provider.innerProvider.GetCredentials()
if err != nil {
return
}
providerName := innerCC.ProviderName
if providerName == "" {
providerName = provider.innerProvider.GetProviderName()
}
cc = &Credentials{
AccessKeyId: innerCC.AccessKeyId,
AccessKeySecret: innerCC.AccessKeySecret,
SecurityToken: innerCC.SecurityToken,
ProviderName: fmt.Sprintf("%s/%s", provider.GetProviderName(), providerName),
}
return
}