@@ -2504,16 +2504,16 @@ aws_secret_access_key = SharedConfigurationSourceSecretKey
25042504
25052505func TestAssumeRoleWithWebIdentity (t * testing.T ) {
25062506 testCases := map [string ]struct {
2507- Config * Config
2508- SetConfig bool
2509- ExpandEnvVars bool
2510- EnvironmentVariables map [string ]string
2511- SetEnvironmentVariable bool
2512- SharedConfigurationFile string
2513- SetSharedConfigurationFile bool
2514- ExpectedCredentialsValue aws.Credentials
2515- ExpectedError func (err error ) bool
2516- MockStsEndpoints []* servicemocks.MockEndpoint
2507+ Config * Config
2508+ SetConfig bool
2509+ ExpandEnvVars bool
2510+ EnvironmentVariables map [string ]string
2511+ SetTokenFileEnvironmentVariable bool
2512+ SharedConfigurationFile string
2513+ SetSharedConfigurationFile bool
2514+ ExpectedCredentialsValue aws.Credentials
2515+ ExpectedError func (err error ) bool
2516+ MockStsEndpoints []* servicemocks.MockEndpoint
25172517 }{
25182518 "config with inline token" : {
25192519 Config : & Config {
@@ -2564,8 +2564,8 @@ func TestAssumeRoleWithWebIdentity(t *testing.T) {
25642564 "AWS_ROLE_ARN" : servicemocks .MockStsAssumeRoleWithWebIdentityArn ,
25652565 "AWS_ROLE_SESSION_NAME" : servicemocks .MockStsAssumeRoleWithWebIdentitySessionName ,
25662566 },
2567- SetEnvironmentVariable : true ,
2568- ExpectedCredentialsValue : mockdata .MockStsAssumeRoleWithWebIdentityCredentials ,
2567+ SetTokenFileEnvironmentVariable : true ,
2568+ ExpectedCredentialsValue : mockdata .MockStsAssumeRoleWithWebIdentityCredentials ,
25692569 MockStsEndpoints : []* servicemocks.MockEndpoint {
25702570 servicemocks .MockStsAssumeRoleWithWebIdentityValidEndpoint ,
25712571 },
@@ -2594,8 +2594,8 @@ role_session_name = %[2]s
25942594 },
25952595 },
25962596 EnvironmentVariables : map [string ]string {
2597- "AWS_ROLE_ARN" : servicemocks .MockStsAssumeRoleWithWebIdentityArn ,
2598- "AWS_ROLE_SESSION_NAME" : servicemocks .MockStsAssumeRoleWithWebIdentitySessionName ,
2597+ "AWS_ROLE_ARN" : servicemocks .MockStsAssumeRoleWithWebIdentityAlternateArn ,
2598+ "AWS_ROLE_SESSION_NAME" : servicemocks .MockStsAssumeRoleWithWebIdentityAlternateSessionName ,
25992599 "AWS_WEB_IDENTITY_TOKEN_FILE" : "no-such-file" ,
26002600 },
26012601 ExpectedCredentialsValue : mockdata .MockStsAssumeRoleWithWebIdentityCredentials ,
@@ -2604,19 +2604,53 @@ role_session_name = %[2]s
26042604 },
26052605 },
26062606
2607+ // "config with file envvar": {
2608+ // Config: &Config{
2609+ // AssumeRoleWithWebIdentity: &AssumeRoleWithWebIdentity{
2610+ // RoleARN: servicemocks.MockStsAssumeRoleWithWebIdentityArn,
2611+ // SessionName: servicemocks.MockStsAssumeRoleWithWebIdentitySessionName,
2612+ // },
2613+ // },
2614+ // SetTokenFileEnvironmentVariable: true,
2615+ // ExpectedCredentialsValue: mockdata.MockStsAssumeRoleWithWebIdentityCredentials,
2616+ // MockStsEndpoints: []*servicemocks.MockEndpoint{
2617+ // servicemocks.MockStsAssumeRoleWithWebIdentityValidEndpoint,
2618+ // },
2619+ // },
2620+
26072621 "envvar overrides shared configuration" : {
26082622 Config : & Config {},
26092623 EnvironmentVariables : map [string ]string {
26102624 "AWS_ROLE_ARN" : servicemocks .MockStsAssumeRoleWithWebIdentityArn ,
26112625 "AWS_ROLE_SESSION_NAME" : servicemocks .MockStsAssumeRoleWithWebIdentitySessionName ,
26122626 },
2613- SetEnvironmentVariable : true ,
2627+ SetTokenFileEnvironmentVariable : true ,
26142628 SharedConfigurationFile : fmt .Sprintf (`
26152629[default]
26162630role_arn = %[1]s
26172631role_session_name = %[2]s
26182632web_identity_token_file = no-such-file
2619- ` , servicemocks .MockStsAssumeRoleWithWebIdentityArn , servicemocks .MockStsAssumeRoleWithWebIdentitySessionName ),
2633+ ` , servicemocks .MockStsAssumeRoleWithWebIdentityAlternateArn , servicemocks .MockStsAssumeRoleWithWebIdentityAlternateSessionName ),
2634+ ExpectedCredentialsValue : mockdata .MockStsAssumeRoleWithWebIdentityCredentials ,
2635+ MockStsEndpoints : []* servicemocks.MockEndpoint {
2636+ servicemocks .MockStsAssumeRoleWithWebIdentityValidEndpoint ,
2637+ },
2638+ },
2639+
2640+ "config overrides shared configuration" : {
2641+ Config : & Config {
2642+ AssumeRoleWithWebIdentity : & AssumeRoleWithWebIdentity {
2643+ RoleARN : servicemocks .MockStsAssumeRoleWithWebIdentityArn ,
2644+ SessionName : servicemocks .MockStsAssumeRoleWithWebIdentitySessionName ,
2645+ WebIdentityToken : servicemocks .MockWebIdentityToken ,
2646+ },
2647+ },
2648+ SharedConfigurationFile : fmt .Sprintf (`
2649+ [default]
2650+ role_arn = %[1]s
2651+ role_session_name = %[2]s
2652+ web_identity_token_file = no-such-file
2653+ ` , servicemocks .MockStsAssumeRoleWithWebIdentityAlternateArn , servicemocks .MockStsAssumeRoleWithWebIdentityAlternateSessionName ),
26202654 ExpectedCredentialsValue : mockdata .MockStsAssumeRoleWithWebIdentityCredentials ,
26212655 MockStsEndpoints : []* servicemocks.MockEndpoint {
26222656 servicemocks .MockStsAssumeRoleWithWebIdentityValidEndpoint ,
@@ -2728,7 +2762,7 @@ web_identity_token_file = no-such-file
27282762 testCase .Config .AssumeRoleWithWebIdentity .WebIdentityTokenFile = tokenFileName
27292763 }
27302764
2731- if testCase .SetEnvironmentVariable {
2765+ if testCase .SetTokenFileEnvironmentVariable {
27322766 os .Setenv ("AWS_WEB_IDENTITY_TOKEN_FILE" , tokenFileName )
27332767 }
27342768
0 commit comments