diff --git a/controller/http.go b/controller/http.go index dae22922bde93e023810c80a2e2ea26c6851758d..1261577acfdd0a70e1e6053acfaebda154467d64 100644 --- a/controller/http.go +++ b/controller/http.go @@ -42,7 +42,9 @@ func run() error { // Register gRPC server endpoint // Note: Make sure the gRPC server is running properly and accessible - mux := runtime.NewServeMux() + mux := runtime.NewServeMux( + runtime.WithIncomingHeaderMatcher(customHeaderMatcher), + ) err := registerHttpHandler(mux) @@ -162,3 +164,14 @@ func metricsHandler(mux *runtime.ServeMux) error { return nil } + +// customHeaderMatcher passes custom key-value pairs within headers to be added to the outgoing context of gRPC-Gateway. +// Use "authorize: token" in header for authorization after login. +func customHeaderMatcher(key string) (string, bool) { + switch key { + case "Authorize": + return key, true + default: + return runtime.DefaultHeaderMatcher(key) + } +}