From 55d0969c04b9ffa54e367e3fb8e32cdd05083b61 Mon Sep 17 00:00:00 2001 From: Tamal Saha Date: Tue, 18 Apr 2017 23:35:19 -0700 Subject: [PATCH] Use canonical header form in default header matcher. (#369) --- runtime/mux.go | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/runtime/mux.go b/runtime/mux.go index 85f53d3f513..88521c69c8b 100644 --- a/runtime/mux.go +++ b/runtime/mux.go @@ -1,13 +1,12 @@ package runtime import ( - "fmt" "net/http" + "net/textproto" "strings" - "golang.org/x/net/context" - "github.com/golang/protobuf/proto" + "golang.org/x/net/context" "google.golang.org/grpc/metadata" ) @@ -48,8 +47,9 @@ type HeaderMatcherFunc func(string) (string, bool) // keys (as specified by the IANA) to gRPC context with grpcgateway- prefix. HTTP headers that start with // 'Grpc-Metadata-' are mapped to gRPC metadata after removing prefix 'Grpc-Metadata-'. func DefaultHeaderMatcher(key string) (string, bool) { + key = textproto.CanonicalMIMEHeaderKey(key) if isPermanentHTTPHeader(key) { - return strings.ToLower(fmt.Sprintf("%s%s", MetadataPrefix, key)), true + return MetadataPrefix + key, true } else if strings.HasPrefix(key, MetadataHeaderPrefix) { return key[len(MetadataHeaderPrefix):], true }