Skip to content

Commit 14747e6

Browse files
gIthurielcodyoss
authored andcommitted
google: check additional AWS variable
AWS_DEFAULT_REGION should have been checked as a backup to AWS_REGION but wasn't. Also removed a redundant print statement in a test case. Change-Id: Ia6e13eb20f509110a81e3071228283c43a1e9283 GitHub-Last-Rev: 1a10bcc GitHub-Pull-Request: #486 Reviewed-on: https://go-review.googlesource.com/c/oauth2/+/302789 Reviewed-by: Cody Oss <codyoss@google.com> Trust: Cody Oss <codyoss@google.com> Trust: Tyler Bui-Palsulich <tbp@google.com>
1 parent d040287 commit 14747e6

File tree

3 files changed

+77
-2
lines changed

3 files changed

+77
-2
lines changed

‎google/internal/externalaccount/aws.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -342,6 +342,8 @@ func (cs awsCredentialSource) subjectToken() (string, error) {
342342
func (cs *awsCredentialSource) getRegion() (string, error) {
343343
if envAwsRegion := getenv("AWS_REGION"); envAwsRegion != "" {
344344
return envAwsRegion, nil
345+
} if envAwsRegion := getenv("AWS_DEFAULT_REGION"); envAwsRegion != "" {
346+
return envAwsRegion, nil
345347
}
346348

347349
if cs.RegionURL == "" {

‎google/internal/externalaccount/aws_test.go

Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -638,6 +638,81 @@ func TestAwsCredential_BasicRequestWithEnv(t *testing.T) {
638638
}
639639
}
640640

641+
func TestAwsCredential_BasicRequestWithDefaultEnv(t *testing.T) {
642+
server := createDefaultAwsTestServer()
643+
ts := httptest.NewServer(server)
644+
645+
tfc := testFileConfig
646+
tfc.CredentialSource = server.getCredentialSource(ts.URL)
647+
648+
oldGetenv := getenv
649+
defer func() { getenv = oldGetenv }()
650+
getenv = setEnvironment(map[string]string{
651+
"AWS_ACCESS_KEY_ID": "AKIDEXAMPLE",
652+
"AWS_SECRET_ACCESS_KEY": "wJalrXUtnFEMI/K7MDENG+bPxRfiCYEXAMPLEKEY",
653+
"AWS_DEFAULT_REGION": "us-west-1",
654+
})
655+
656+
base, err := tfc.parse(context.Background())
657+
if err != nil {
658+
t.Fatalf("parse() failed %v", err)
659+
}
660+
661+
out, err := base.subjectToken()
662+
if err != nil {
663+
t.Fatalf("retrieveSubjectToken() failed: %v", err)
664+
}
665+
expected := getExpectedSubjectToken(
666+
"https://sts.us-west-1.amazonaws.com?Action=GetCallerIdentity&Version=2011-06-15",
667+
"us-west-1",
668+
"AKIDEXAMPLE",
669+
"wJalrXUtnFEMI/K7MDENG+bPxRfiCYEXAMPLEKEY",
670+
"",
671+
)
672+
673+
if got, want := out, expected; !reflect.DeepEqual(got, want) {
674+
t.Errorf("subjectToken = %q, want %q", got, want)
675+
}
676+
}
677+
678+
func TestAwsCredential_BasicRequestWithTwoRegions(t *testing.T) {
679+
server := createDefaultAwsTestServer()
680+
ts := httptest.NewServer(server)
681+
682+
tfc := testFileConfig
683+
tfc.CredentialSource = server.getCredentialSource(ts.URL)
684+
685+
oldGetenv := getenv
686+
defer func() { getenv = oldGetenv }()
687+
getenv = setEnvironment(map[string]string{
688+
"AWS_ACCESS_KEY_ID": "AKIDEXAMPLE",
689+
"AWS_SECRET_ACCESS_KEY": "wJalrXUtnFEMI/K7MDENG+bPxRfiCYEXAMPLEKEY",
690+
"AWS_REGION": "us-west-1",
691+
"AWS_DEFAULT_REGION": "us-east-1",
692+
})
693+
694+
base, err := tfc.parse(context.Background())
695+
if err != nil {
696+
t.Fatalf("parse() failed %v", err)
697+
}
698+
699+
out, err := base.subjectToken()
700+
if err != nil {
701+
t.Fatalf("retrieveSubjectToken() failed: %v", err)
702+
}
703+
expected := getExpectedSubjectToken(
704+
"https://sts.us-west-1.amazonaws.com?Action=GetCallerIdentity&Version=2011-06-15",
705+
"us-west-1",
706+
"AKIDEXAMPLE",
707+
"wJalrXUtnFEMI/K7MDENG+bPxRfiCYEXAMPLEKEY",
708+
"",
709+
)
710+
711+
if got, want := out, expected; !reflect.DeepEqual(got, want) {
712+
t.Errorf("subjectToken = %q, want %q", got, want)
713+
}
714+
}
715+
641716
func TestAwsCredential_RequestWithBadVersion(t *testing.T) {
642717
server := createDefaultAwsTestServer()
643718
ts := httptest.NewServer(server)

‎google/internal/externalaccount/urlcredsource_test.go

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ package externalaccount
77
import (
88
"context"
99
"encoding/json"
10-
"fmt"
1110
"net/http"
1211
"net/http/httptest"
1312
"testing"
@@ -20,7 +19,6 @@ func TestRetrieveURLSubjectToken_Text(t *testing.T) {
2019
if r.Method != "GET" {
2120
t.Errorf("Unexpected request method, %v is found", r.Method)
2221
}
23-
fmt.Println(r.Header)
2422
if r.Header.Get("Metadata") != "True" {
2523
t.Errorf("Metadata header not properly included.")
2624
}

0 commit comments

Comments
 (0)