18947: Refactor keep-web as arvados-server command.
[arvados.git] / sdk / go / arvados / context.go
index 555cfc8e9087874bf41cc087773e499209182dd9..6ecf85b4e0403f02d0109152c4de16253d8aef7e 100644 (file)
@@ -8,10 +8,17 @@ import (
        "context"
 )
 
-type contextKey string
-
-var contextKeyRequestID contextKey = "X-Request-Id"
+type contextKeyRequestID struct{}
+type contextKeyAuthorization struct{}
 
 func ContextWithRequestID(ctx context.Context, reqid string) context.Context {
-       return context.WithValue(ctx, contextKeyRequestID, reqid)
+       return context.WithValue(ctx, contextKeyRequestID{}, reqid)
+}
+
+// ContextWithAuthorization returns a child context that (when used
+// with (*Client)RequestAndDecodeContext) sends the given
+// Authorization header value instead of the Client's default
+// AuthToken.
+func ContextWithAuthorization(ctx context.Context, value string) context.Context {
+       return context.WithValue(ctx, contextKeyAuthorization{}, value)
 }