feat: support customized header to metadata processor (#2162)
* chore: add more tests * feat: support customized header processor
This commit is contained in:
30
gateway/internal/headerprocessor.go
Normal file
30
gateway/internal/headerprocessor.go
Normal file
@@ -0,0 +1,30 @@
|
||||
package internal
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"net/http"
|
||||
"strings"
|
||||
)
|
||||
|
||||
const (
|
||||
metadataHeaderPrefix = "Grpc-Metadata-"
|
||||
metadataPrefix = "gateway-"
|
||||
)
|
||||
|
||||
// ProcessHeaders builds the headers for the gateway from HTTP headers.
|
||||
func ProcessHeaders(header http.Header) []string {
|
||||
var headers []string
|
||||
|
||||
for k, v := range header {
|
||||
if !strings.HasPrefix(k, metadataHeaderPrefix) {
|
||||
continue
|
||||
}
|
||||
|
||||
key := fmt.Sprintf("%s%s", metadataPrefix, strings.TrimPrefix(k, metadataHeaderPrefix))
|
||||
for _, vv := range v {
|
||||
headers = append(headers, key+":"+vv)
|
||||
}
|
||||
}
|
||||
|
||||
return headers
|
||||
}
|
||||
Reference in New Issue
Block a user