Skip to content

Commit ae45911

Browse files
authored
Adds context to HeaderProvider.Headers(ctx) (#1562)
1 parent 6804f60 commit ae45911

4 files changed

Lines changed: 12 additions & 11 deletions

File tree

pkg/chipingress/auth.go

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,10 @@ import (
1010
var _ credentials.PerRPCCredentials = basicAuthCredentials{}
1111
var _ credentials.PerRPCCredentials = tokenAuthCredentials{}
1212

13+
type HeaderProvider interface {
14+
Headers(ctx context.Context) map[string]string
15+
}
16+
1317
// Basic-Auth authentication for Chip Ingress
1418
type basicAuthCredentials struct {
1519
authHeader map[string]string
@@ -42,11 +46,11 @@ type tokenAuthCredentials struct {
4246
}
4347

4448
// implement PerRPCCredentials interface
45-
func (c tokenAuthCredentials) GetRequestMetadata(_ context.Context, _ ...string) (map[string]string, error) {
49+
func (c tokenAuthCredentials) GetRequestMetadata(ctx context.Context, _ ...string) (map[string]string, error) {
4650
if c.authTokenProvider == nil {
4751
return nil, nil
4852
}
49-
return c.authTokenProvider.GetHeaders(), nil
53+
return c.authTokenProvider.Headers(ctx), nil
5054
}
5155

5256
func (c tokenAuthCredentials) RequireTransportSecurity() bool {

pkg/chipingress/auth_test.go

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -49,13 +49,11 @@ func TestBasicAuth(t *testing.T) {
4949
})
5050
}
5151

52-
var authHeaderKey = "X-Auth-Token"
53-
5452
type testHeaderProvider struct {
5553
headers map[string]string
5654
}
5755

58-
func (p *testHeaderProvider) GetHeaders() map[string]string {
56+
func (p *testHeaderProvider) Headers(ctx context.Context) map[string]string {
5957
return p.headers
6058
}
6159

pkg/chipingress/client.go

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,6 @@ import (
2020
)
2121

2222
// HeaderProvider defines an interface for providing headers
23-
type HeaderProvider interface {
24-
GetHeaders() map[string]string
25-
}
2623

2724
type Client interface {
2825
pb.ChipIngressClient
@@ -51,8 +48,10 @@ func newClientConfig(host string) *clientConfig {
5148
headerProvider: nil,
5249
perRPCCredentials: nil,
5350
host: host,
51+
// Default to insecure connection
52+
insecureConnection: true,
53+
transportCredentials: insecure.NewCredentials(),
5454
}
55-
WithInsecureConnection()(cfg) // Default to insecure connection
5655
return cfg
5756
}
5857

@@ -168,7 +167,7 @@ func newHeaderInterceptor(provider HeaderProvider) grpc.UnaryClientInterceptor {
168167
return func(ctx context.Context, method string, req, reply interface{}, cc *grpc.ClientConn, invoker grpc.UnaryInvoker, opts ...grpc.CallOption) error {
169168
// Add dynamic headers from provider if available
170169
if provider != nil {
171-
for k, v := range provider.GetHeaders() {
170+
for k, v := range provider.Headers(ctx) {
172171
ctx = metadata.AppendToOutgoingContext(ctx, k, v)
173172
}
174173
}

pkg/chipingress/client_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -584,7 +584,7 @@ type mockHeaderProvider struct {
584584
headers map[string]string
585585
}
586586

587-
func (m *mockHeaderProvider) GetHeaders() map[string]string {
587+
func (m *mockHeaderProvider) Headers(ctx context.Context) map[string]string {
588588
return m.headers
589589
}
590590

0 commit comments

Comments
 (0)