diff --git a/pkg/bearertoken/context.go b/pkg/bearertoken/context.go index 5320db4520d..9e9a7fe8c3a 100644 --- a/pkg/bearertoken/context.go +++ b/pkg/bearertoken/context.go @@ -16,17 +16,12 @@ package bearertoken import "context" -type contextKeyType string +type contextKeyType int -const ( - // Key is the key name for the bearer token context value. - Key = "bearer.token" +const contextKey = iota - // StoragePropagationKey is a key for viper configuration to pass this option to storage plugins. - StoragePropagationKey = "storage.propagate.token" - - contextKey = contextKeyType(Key) -) +// StoragePropagationKey is a key for viper configuration to pass this option to storage plugins. +const StoragePropagationKey = "storage.propagate.token" // ContextWithBearerToken set bearer token in context. func ContextWithBearerToken(ctx context.Context, token string) context.Context { diff --git a/pkg/bearertoken/http.go b/pkg/bearertoken/http.go index b219effef79..76cb0014bec 100644 --- a/pkg/bearertoken/http.go +++ b/pkg/bearertoken/http.go @@ -22,9 +22,8 @@ import ( ) // PropagationHandler returns a http.Handler containing the logic to extract -// the Authorization token from the http.Request and inserts it into the http.Request -// context for easier access to the request token via GetBearerToken for bearer token -// propagation use cases. +// the Bearer token from the Authorization header of the http.Request and insert it into request.Context +// for propagation. The token can be accessed via GetBearerToken. func PropagationHandler(logger *zap.Logger, h http.Handler) http.Handler { return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { ctx := r.Context() diff --git a/plugin/storage/grpc/README.md b/plugin/storage/grpc/README.md index fd64d06c79a..0efca2d4dd0 100644 --- a/plugin/storage/grpc/README.md +++ b/plugin/storage/grpc/README.md @@ -180,15 +180,16 @@ When using `--query.bearer-token-propagation=true`, the bearer token will be pro import ( // ... other imports "fmt" - "github.com/jaegertracing/jaeger/storage/spanstore" "google.golang.org/grpc/metadata" + + "github.com/jaegertracing/jaeger/plugin/storage/grpc" ) // ... spanReader type declared here func (r *spanReader) extractBearerToken(ctx context.Context) (string, bool) { if md, ok := metadata.FromIncomingContext(ctx); ok { - values := md.Get(spanstore.BearerTokenKey) + values := md.Get(grpc.BearerTokenKey) if len(values) > 0 { return values[0], true } diff --git a/plugin/storage/grpc/shared/grpc_client.go b/plugin/storage/grpc/shared/grpc_client.go index 0f3d49f1880..33d166de717 100644 --- a/plugin/storage/grpc/shared/grpc_client.go +++ b/plugin/storage/grpc/shared/grpc_client.go @@ -31,6 +31,9 @@ import ( "github.com/jaegertracing/jaeger/storage/spanstore" ) +// BearerTokenKey is the key name for the bearer token context value. +const BearerTokenKey = "bearer.token" + var ( _ StoragePlugin = (*grpcClient)(nil) _ ArchiveStoragePlugin = (*grpcClient)(nil) @@ -74,7 +77,7 @@ func upgradeContextWithBearerToken(ctx context.Context) context.Context { if !ok { md = metadata.New(nil) } - md.Set(bearertoken.Key, bearerToken) + md.Set(BearerTokenKey, bearerToken) return metadata.NewOutgoingContext(ctx, md) } return ctx diff --git a/plugin/storage/grpc/shared/grpc_client_test.go b/plugin/storage/grpc/shared/grpc_client_test.go index 518f95bc7aa..51e1252a5d9 100644 --- a/plugin/storage/grpc/shared/grpc_client_test.go +++ b/plugin/storage/grpc/shared/grpc_client_test.go @@ -113,7 +113,7 @@ func TestContextUpgradeWithToken(t *testing.T) { upgradedToken := upgradeContextWithBearerToken(ctx) md, ok := metadata.FromOutgoingContext(upgradedToken) assert.Truef(t, ok, "Expected metadata in context") - bearerTokenFromMetadata := md.Get(bearertoken.Key) + bearerTokenFromMetadata := md.Get(BearerTokenKey) assert.Equal(t, []string{testBearerToken}, bearerTokenFromMetadata) }