Skip to content

Commit 8656b8a

Browse files
committed
chore: Updating from remote
2 parents 18cb28d + ebe81ad commit 8656b8a

File tree

9 files changed

+370
-22
lines changed

9 files changed

+370
-22
lines changed

go.mod

+2-2
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,8 @@ require (
1919
github.com/pkg/errors v0.9.1 // indirect
2020
github.com/valyala/bytebufferpool v1.0.0 // indirect
2121
github.com/valyala/fasthttp v1.50.0 // indirect
22-
golang.org/x/net v0.18.0 // indirect
23-
golang.org/x/sys v0.14.0 // indirect
22+
golang.org/x/net v0.21.0 // indirect
23+
golang.org/x/sys v0.17.0 // indirect
2424
golang.org/x/text v0.14.0 // indirect
2525
google.golang.org/genproto/googleapis/rpc v0.0.0-20231106174013-bbf56f31fb17 // indirect
2626
google.golang.org/grpc v1.59.0 // indirect

go.sum

+12-6
Original file line numberDiff line numberDiff line change
@@ -1,43 +1,47 @@
1-
cloud.google.com/go/compute v1.20.1 h1:6aKEtlUiwEpJzM001l0yFkpXmUVXaN8W+fbkb2AZNbg=
2-
cloud.google.com/go/compute v1.20.1/go.mod h1:4tCnrn48xsqlwSAiLf1HXMQk8CONslYbdiEZc9FEIbM=
31
cloud.google.com/go/compute v1.23.0 h1:tP41Zoavr8ptEqaW6j+LQOnyBBhO7OkOMAGrgLopTwY=
42
cloud.google.com/go/compute v1.23.0/go.mod h1:4tCnrn48xsqlwSAiLf1HXMQk8CONslYbdiEZc9FEIbM=
53
cloud.google.com/go/compute/metadata v0.2.3 h1:mg4jlk7mCAj6xXp9UJ4fjI9VUI5rubuGBW5aJ7UnBMY=
64
cloud.google.com/go/compute/metadata v0.2.3/go.mod h1:VAV5nSsACxMJvgaAuX6Pk2AawlZn8kiOGuCv6gTkwuA=
5+
github.com/DATA-DOG/go-sqlmock v1.4.1 h1:ThlnYciV1iM/V0OSF/dtkqWb6xo5qITT1TJBG1MRDJM=
76
github.com/andybalholm/brotli v1.0.6 h1:Yf9fFpf49Zrxb9NlQaluyE92/+X7UVHlhMNJN2sxfOI=
87
github.com/andybalholm/brotli v1.0.6/go.mod h1:fO7iG3H7G2nSZ7m0zPUDn85XEX2GTukHGRSepvi9Eig=
98
github.com/aws/aws-sdk-go v1.47.9 h1:rarTsos0mA16q+huicGx0e560aYRtOucV5z2Mw23JRY=
109
github.com/aws/aws-sdk-go v1.47.9/go.mod h1:LF8svs817+Nz+DmiMQKTO3ubZ/6IaTpq3TjupRn3Eqk=
1110
github.com/aws/aws-xray-sdk-go v1.8.3 h1:S8GdgVncBRhzbNnNUgTPwhEqhwt2alES/9rLASyhxjU=
1211
github.com/aws/aws-xray-sdk-go v1.8.3/go.mod h1:tv8uLMOSCABolrIF8YCcp3ghyswArsan8dfLCA1ZATk=
1312
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
13+
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
1414
github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
1515
github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk=
1616
github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg=
1717
github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY=
1818
github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
1919
github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38=
2020
github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
21+
github.com/grpc-ecosystem/go-grpc-middleware v1.3.0 h1:+9834+KizmvFV7pXQGSXQTsaWhq2GjuNUt0aUU0YBYw=
2122
github.com/jmespath/go-jmespath v0.4.0 h1:BEgLn5cpjn8UN1mAw4NjwDrS35OdebyEtFe+9YPoQUg=
2223
github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo=
24+
github.com/jmespath/go-jmespath/internal/testify v1.5.1 h1:shLQSRRSCCPj3f2gpwzGwWFoC7ycTf1rcQZHOlsJ6N8=
2325
github.com/jmespath/go-jmespath/internal/testify v1.5.1/go.mod h1:L3OGu8Wl2/fWfCI6z80xFu9LTZmf1ZRjMHUOPmWr69U=
2426
github.com/klauspost/compress v1.17.2 h1:RlWWUY/Dr4fL8qk9YG7DTZ7PDgME2V4csBXA8L/ixi4=
2527
github.com/klauspost/compress v1.17.2/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE=
2628
github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
2729
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
30+
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
2831
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
2932
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
33+
github.com/stretchr/testify v1.7.2 h1:4jaiDzPyXQvSd7D0EjG45355tLlV3VOECpq10pLC+8s=
3034
github.com/valyala/bytebufferpool v1.0.0 h1:GqA5TC/0021Y/b9FG4Oi9Mr3q7XYx6KllzawFIhcdPw=
3135
github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc=
3236
github.com/valyala/fasthttp v1.50.0 h1:H7fweIlBm0rXLs2q0XbalvJ6r0CUPFWK3/bB4N13e9M=
3337
github.com/valyala/fasthttp v1.50.0/go.mod h1:k2zXd82h/7UZc3VOdJ2WaUqt1uZ/XpXAfE9i+HBC3lA=
3438
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
3539
golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks=
36-
golang.org/x/net v0.18.0 h1:mIYleuAkSbHh0tCv7RvjL3F6ZVbLjq4+R7zbOn3Kokg=
37-
golang.org/x/net v0.18.0/go.mod h1:/czyP5RqHAH4odGYxBJ1qz0+CE5WZ+2j1YgoEo8F2jQ=
40+
golang.org/x/net v0.21.0 h1:AQyQV4dYCvJ7vGmJyKki9+PBdyvhkSd8EIx/qb0AYv4=
41+
golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44=
3842
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
39-
golang.org/x/sys v0.14.0 h1:Vz7Qs629MkJkGyHxUlRHizWJRG2j8fbQKjELVSNhy7Q=
40-
golang.org/x/sys v0.14.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
43+
golang.org/x/sys v0.17.0 h1:25cE3gD+tdBA7lp7QfhuV+rJiE9YXTcS3VG1SqssI/Y=
44+
golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
4145
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
4246
golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
4347
golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ=
@@ -55,4 +59,6 @@ google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQ
5559
google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8=
5660
google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=
5761
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
62+
gopkg.in/yaml.v2 v2.2.8 h1:obN1ZagJSUGI0Ek/LBmuj4SNLPfIny3KsKFopxRdj10=
5863
gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
64+
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=

google/default.go

+70-2
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import (
1212
"os"
1313
"path/filepath"
1414
"runtime"
15+
"sync"
1516
"time"
1617

1718
"cloud.google.com/go/compute/metadata"
@@ -41,19 +42,76 @@ type Credentials struct {
4142
// running on Google Cloud Platform.
4243
JSON []byte
4344

45+
udMu sync.Mutex // guards universeDomain
4446
// universeDomain is the default service domain for a given Cloud universe.
4547
universeDomain string
4648
}
4749

4850
// UniverseDomain returns the default service domain for a given Cloud universe.
51+
//
4952
// The default value is "googleapis.com".
53+
//
54+
// Deprecated: Use instead (*Credentials).GetUniverseDomain(), which supports
55+
// obtaining the universe domain when authenticating via the GCE metadata server.
56+
// Unlike GetUniverseDomain, this method, UniverseDomain, will always return the
57+
// default value when authenticating via the GCE metadata server.
58+
// See also [The attached service account](https://cloud.google.com/docs/authentication/application-default-credentials#attached-sa).
5059
func (c *Credentials) UniverseDomain() string {
5160
if c.universeDomain == "" {
5261
return universeDomainDefault
5362
}
5463
return c.universeDomain
5564
}
5665

66+
// GetUniverseDomain returns the default service domain for a given Cloud
67+
// universe.
68+
//
69+
// The default value is "googleapis.com".
70+
//
71+
// It obtains the universe domain from the attached service account on GCE when
72+
// authenticating via the GCE metadata server. See also [The attached service
73+
// account](https://cloud.google.com/docs/authentication/application-default-credentials#attached-sa).
74+
// If the GCE metadata server returns a 404 error, the default value is
75+
// returned. If the GCE metadata server returns an error other than 404, the
76+
// error is returned.
77+
func (c *Credentials) GetUniverseDomain() (string, error) {
78+
c.udMu.Lock()
79+
defer c.udMu.Unlock()
80+
if c.universeDomain == "" && metadata.OnGCE() {
81+
// If we're on Google Compute Engine, an App Engine standard second
82+
// generation runtime, or App Engine flexible, use the metadata server.
83+
err := c.computeUniverseDomain()
84+
if err != nil {
85+
return "", err
86+
}
87+
}
88+
// If not on Google Compute Engine, or in case of any non-error path in
89+
// computeUniverseDomain that did not set universeDomain, set the default
90+
// universe domain.
91+
if c.universeDomain == "" {
92+
c.universeDomain = universeDomainDefault
93+
}
94+
return c.universeDomain, nil
95+
}
96+
97+
// computeUniverseDomain fetches the default service domain for a given Cloud
98+
// universe from Google Compute Engine (GCE)'s metadata server. It's only valid
99+
// to use this method if your program is running on a GCE instance.
100+
func (c *Credentials) computeUniverseDomain() error {
101+
var err error
102+
c.universeDomain, err = metadata.Get("universe/universe_domain")
103+
if err != nil {
104+
if _, ok := err.(metadata.NotDefinedError); ok {
105+
// http.StatusNotFound (404)
106+
c.universeDomain = universeDomainDefault
107+
return nil
108+
} else {
109+
return err
110+
}
111+
}
112+
return nil
113+
}
114+
57115
// DefaultCredentials is the old name of Credentials.
58116
//
59117
// Deprecated: use Credentials instead.
@@ -91,6 +149,12 @@ type CredentialsParams struct {
91149
// Note: This option is currently only respected when using credentials
92150
// fetched from the GCE metadata server.
93151
EarlyTokenRefresh time.Duration
152+
153+
// UniverseDomain is the default service domain for a given Cloud universe.
154+
// Only supported in authentication flows that support universe domains.
155+
// This value takes precedence over a universe domain explicitly specified
156+
// in a credentials config file or by the GCE metadata server. Optional.
157+
UniverseDomain string
94158
}
95159

96160
func (params CredentialsParams) deepCopy() CredentialsParams {
@@ -175,8 +239,9 @@ func FindDefaultCredentialsWithParams(ctx context.Context, params CredentialsPar
175239
if metadata.OnGCE() {
176240
id, _ := metadata.ProjectID()
177241
return &Credentials{
178-
ProjectID: id,
179-
TokenSource: computeTokenSource("", params.EarlyTokenRefresh, params.Scopes...),
242+
ProjectID: id,
243+
TokenSource: computeTokenSource("", params.EarlyTokenRefresh, params.Scopes...),
244+
universeDomain: params.UniverseDomain,
180245
}, nil
181246
}
182247

@@ -217,6 +282,9 @@ func CredentialsFromJSONWithParams(ctx context.Context, jsonData []byte, params
217282
}
218283

219284
universeDomain := f.UniverseDomain
285+
if params.UniverseDomain != "" {
286+
universeDomain = params.UniverseDomain
287+
}
220288
// Authorized user credentials are only supported in the googleapis.com universe.
221289
if f.Type == userCredentialsKey {
222290
universeDomain = universeDomainDefault

0 commit comments

Comments
 (0)