Skip to content

Commit 704d0c2

Browse files
committed
Updates HeaderProvider interface to also return error
needed for additional implementations
1 parent 0e5ebb4 commit 704d0c2

File tree

4 files changed

+13
-7
lines changed

4 files changed

+13
-7
lines changed

pkg/chipingress/auth.go

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

1313
type HeaderProvider interface {
14-
Headers(ctx context.Context) map[string]string
14+
Headers(ctx context.Context) (map[string]string, error)
1515
}
1616

1717
// Basic-Auth authentication for Chip Ingress
@@ -50,7 +50,7 @@ func (c tokenAuthCredentials) GetRequestMetadata(ctx context.Context, _ ...strin
5050
if c.authTokenProvider == nil {
5151
return nil, nil
5252
}
53-
return c.authTokenProvider.Headers(ctx), nil
53+
return c.authTokenProvider.Headers(ctx)
5454
}
5555

5656
func (c tokenAuthCredentials) RequireTransportSecurity() bool {

pkg/chipingress/auth_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -53,8 +53,8 @@ type testHeaderProvider struct {
5353
headers map[string]string
5454
}
5555

56-
func (p *testHeaderProvider) Headers(ctx context.Context) map[string]string {
57-
return p.headers
56+
func (p *testHeaderProvider) Headers(ctx context.Context) (map[string]string, error) {
57+
return p.headers, nil
5858
}
5959

6060
func TestTokenAuth(t *testing.T) {

pkg/chipingress/client.go

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -167,7 +167,13 @@ func newHeaderInterceptor(provider HeaderProvider) grpc.UnaryClientInterceptor {
167167
return func(ctx context.Context, method string, req, reply interface{}, cc *grpc.ClientConn, invoker grpc.UnaryInvoker, opts ...grpc.CallOption) error {
168168
// Add dynamic headers from provider if available
169169
if provider != nil {
170-
for k, v := range provider.Headers(ctx) {
170+
171+
headers, err := provider.Headers(ctx)
172+
if err != nil {
173+
return fmt.Errorf("failed to get headers: %w", err)
174+
}
175+
176+
for k, v := range headers {
171177
ctx = metadata.AppendToOutgoingContext(ctx, k, v)
172178
}
173179
}

pkg/chipingress/client_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -584,8 +584,8 @@ type mockHeaderProvider struct {
584584
headers map[string]string
585585
}
586586

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

591591
func TestWithTLS(t *testing.T) {

0 commit comments

Comments
 (0)