diff --git a/internal/net/http/middleware/middleware.go b/internal/net/http/middleware/middleware.go index 537939c..9a1ad4a 100644 --- a/internal/net/http/middleware/middleware.go +++ b/internal/net/http/middleware/middleware.go @@ -142,18 +142,18 @@ func createMiddlewares(middlewaresMap map[string]OptionsRaw) ([]*Middleware, E.E return middlewares, errs.Error() } -func PatchReverseProxy(rpName string, rp *ReverseProxy, middlewaresMap map[string]OptionsRaw) (err E.Error) { +func PatchReverseProxy(rp *ReverseProxy, middlewaresMap map[string]OptionsRaw) (err E.Error) { var middlewares []*Middleware middlewares, err = createMiddlewares(middlewaresMap) if err != nil { return } - patchReverseProxy(rpName, rp, middlewares) + patchReverseProxy(rp, middlewares) return } -func patchReverseProxy(rpName string, rp *ReverseProxy, middlewares []*Middleware) { - mid := BuildMiddlewareFromChain(rpName, middlewares) +func patchReverseProxy(rp *ReverseProxy, middlewares []*Middleware) { + mid := BuildMiddlewareFromChain(rp.TargetName, middlewares) if mid.before != nil { ori := rp.HandlerFunc diff --git a/internal/net/http/middleware/test_utils.go b/internal/net/http/middleware/test_utils.go index b62d1d6..f1947aa 100644 --- a/internal/net/http/middleware/test_utils.go +++ b/internal/net/http/middleware/test_utils.go @@ -114,12 +114,12 @@ func newMiddlewareTest(middleware *Middleware, args *testArgs) (*TestResult, E.E } else { proxyURL, _ = url.Parse("https://" + testHost) // dummy url, no actual effect } - rp := gphttp.NewReverseProxy("test", types.NewURL(proxyURL), &rr) + rp := gphttp.NewReverseProxy(middleware.name, types.NewURL(proxyURL), &rr) mid, setOptErr := middleware.WithOptionsClone(args.middlewareOpt) if setOptErr != nil { return nil, setOptErr } - patchReverseProxy(middleware.name, rp, []*Middleware{mid}) + patchReverseProxy(rp, []*Middleware{mid}) rp.ServeHTTP(w, req) resp := w.Result() defer resp.Body.Close() diff --git a/internal/route/http.go b/internal/route/http.go index cc292f3..1d34edc 100755 --- a/internal/route/http.go +++ b/internal/route/http.go @@ -71,7 +71,7 @@ func NewHTTPRoute(entry *entry.ReverseProxyEntry) (impl, E.Error) { rp := gphttp.NewReverseProxy(service, entry.URL, trans) if len(entry.Middlewares) > 0 { - err := middleware.PatchReverseProxy(service, rp, entry.Middlewares) + err := middleware.PatchReverseProxy(rp, entry.Middlewares) if err != nil { return nil, err } @@ -157,6 +157,10 @@ func (r *HTTPRoute) Finish(reason any) { r.task.Finish(reason) } +func (r *HTTPRoute) ServeHTTP(w http.ResponseWriter, req *http.Request) { + r.handler.ServeHTTP(w, req) +} + func (r *HTTPRoute) addToLoadBalancer() { var lb *loadbalancer.LoadBalancer linked, ok := httpRoutes.Load(r.LoadBalance.Link)