From 8f67b815f59fef84196f5e74285b8dfa40478bc3 Mon Sep 17 00:00:00 2001 From: Lloyd Brookes Date: Wed, 4 May 2016 14:41:23 +0100 Subject: [PATCH] proxy rewrites: fixed a case where errors were thrown if the resolved 'to' address contained params (e.g. '*', ':param' etc) --- lib/local-web-server.js | 1 + lib/middleware.js | 8 -------- 2 files changed, 1 insertion(+), 8 deletions(-) diff --git a/lib/local-web-server.js b/lib/local-web-server.js index 1eec7ca..20539d3 100644 --- a/lib/local-web-server.js +++ b/lib/local-web-server.js @@ -88,6 +88,7 @@ function localWebServer (options) { if (options.rewrite && options.rewrite.length) { options.rewrite.forEach(route => { if (route.to) { + /* `to` address is remote if the url specifies a host */ if (url.parse(route.to).host) { debug('proxy rewrite', `${route.from} -> ${route.to}`) app.use(_.all(route.from, mw.proxyRequest(route, app))) diff --git a/lib/middleware.js b/lib/middleware.js index a5359ca..559adac 100644 --- a/lib/middleware.js +++ b/lib/middleware.js @@ -33,14 +33,6 @@ function proxyRequest (route, app) { .replace(re, arguments[index + 1] || '') }) - /* test no keys remain in the new path */ - keys.length = 0 - pathToRegexp(url.parse(route.new).path, keys) - if (keys.length) { - this.throw(500, `[PROXY] Invalid target URL: ${route.new}`) - return next() - } - this.response = false debug('proxy request', `from: ${this.path}, to: ${url.parse(route.new).href}`)