Supporting service account impersonation.

Change-Id: I6481964659c2c852e50bf8b19a1306629e7cc4ae
This commit is contained in:
Patrick Jones
2021-01-19 16:28:06 -08:00
parent d9fe970d43
commit 96035656b2
4 changed files with 195 additions and 10 deletions

View File

@@ -89,6 +89,14 @@ type tokenSource struct {
func (ts tokenSource) Token() (*oauth2.Token, error) {
conf := ts.conf
if conf.ServiceAccountImpersonationURL != "" {
token, err := ts.impersonate()
if err != nil {
return nil, err
}
return token, err
}
credSource := conf.parse(ts.ctx)
if credSource == nil {
return nil, fmt.Errorf("oauth2/google: unable to parse credential source")
@@ -130,6 +138,5 @@ func (ts tokenSource) Token() (*oauth2.Token, error) {
if stsResp.RefreshToken != "" {
accessToken.RefreshToken = stsResp.RefreshToken
}
return accessToken, nil
}