From f6617feb8a51c3563cf35b871f32a4e4da1ce750 Mon Sep 17 00:00:00 2001 From: Gyuho Lee Date: Tue, 27 Feb 2018 15:27:54 -0800 Subject: [PATCH] embed: rename "httpWrapper" Signed-off-by: Gyuho Lee --- embed/serve.go | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/embed/serve.go b/embed/serve.go index 479f680e3..3b8868cb5 100644 --- a/embed/serve.go +++ b/embed/serve.go @@ -248,15 +248,20 @@ func (sctx *serveCtx) createMux(gwmux *gw.ServeMux, handler http.Handler) *http. return httpmux } -// wraps HTTP multiplexer to mute requests to /v3beta -// TODO: deprecate this in 3.5 release -func wrapMux(mux *http.ServeMux) http.Handler { return &v3Mutator{mux: mux} } +// wrapMux wraps HTTP multiplexer: +// - mutate gRPC gateway request paths +// - check hostname whitelist +// client HTTP requests goes here first +func wrapMux(mux *http.ServeMux) http.Handler { + return &httpWrapper{mux: mux} +} -type v3Mutator struct { +type httpWrapper struct { mux *http.ServeMux } -func (m *v3Mutator) ServeHTTP(rw http.ResponseWriter, req *http.Request) { +func (m *httpWrapper) ServeHTTP(rw http.ResponseWriter, req *http.Request) { + // redirect for backward compatibilities if req != nil && req.URL != nil && strings.HasPrefix(req.URL.Path, "/v3beta/") { req.URL.Path = strings.Replace(req.URL.Path, "/v3beta/", "/v3/", 1) }