Total Lines | 35 |
Duplicated Lines | 0 % |
Changes | 0 |
1 | package credentials |
||
2 | |||
3 | import ( |
||
4 | "os" |
||
5 | |||
6 | "github.com/alibabacloud-go/tea/tea" |
||
7 | ) |
||
8 | |||
9 | type oidcCredentialsProvider struct{} |
||
10 | |||
11 | var providerOIDC = new(oidcCredentialsProvider) |
||
12 | |||
13 | func newOidcCredentialsProvider() Provider { |
||
14 | return &oidcCredentialsProvider{} |
||
15 | } |
||
16 | |||
17 | func (p *oidcCredentialsProvider) resolve() (*Config, error) { |
||
18 | roleArn, ok1 := os.LookupEnv(ENVRoleArn) |
||
19 | oidcProviderArn, ok2 := os.LookupEnv(ENVOIDCProviderArn) |
||
20 | oidcTokenFilePath, ok3 := os.LookupEnv(ENVOIDCTokenFile) |
||
21 | if !ok1 || !ok2 || !ok3 { |
||
22 | return nil, nil |
||
23 | } |
||
24 | |||
25 | config := &Config{ |
||
26 | Type: tea.String("oidc_role_arn"), |
||
27 | RoleArn: tea.String(roleArn), |
||
28 | OIDCProviderArn: tea.String(oidcProviderArn), |
||
29 | OIDCTokenFilePath: tea.String(oidcTokenFilePath), |
||
30 | } |
||
31 | roleSessionName, ok := os.LookupEnv(ENVRoleSessionName) |
||
32 | if ok { |
||
33 | config.RoleSessionName = tea.String(roleSessionName) |
||
34 | } |
||
35 | return config, nil |
||
36 | } |
||
37 |