From 22737aa1f7126b4d4fed285b0b1c62e0999a7698 Mon Sep 17 00:00:00 2001 From: Christian Werz Date: Wed, 12 Feb 2020 00:06:50 +0100 Subject: [PATCH 1/2] allow all methods add redirect with 307 --- src/daemon/group.js | 2 +- src/daemon/routers/index.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/daemon/group.js b/src/daemon/group.js index d2d60d9d..d89e56b3 100644 --- a/src/daemon/group.js +++ b/src/daemon/group.js @@ -326,7 +326,7 @@ class Group extends EventEmitter { // Make sure to send only one response const send = once(() => { log(`Redirect - ${id} → ${item.target}`) - res.redirect(item.target) + res.redirect(307, item.target) }) if (item.start) { diff --git a/src/daemon/routers/index.js b/src/daemon/routers/index.js index 90753c76..5f102f24 100644 --- a/src/daemon/routers/index.js +++ b/src/daemon/routers/index.js @@ -16,7 +16,7 @@ module.exports = function(group) { router .get('/proxy.pac', pac) - .get( + .all( '/:id', group.exists.bind(group), group.start.bind(group), From 16c28c13b5d4ad054347479604ef3be1e46e441f Mon Sep 17 00:00:00 2001 From: Christian Werz Date: Wed, 12 Feb 2020 00:14:36 +0100 Subject: [PATCH 2/2] add wildcard for path add path to target --- src/daemon/group.js | 11 ++++++++--- src/daemon/routers/index.js | 2 +- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/src/daemon/group.js b/src/daemon/group.js index d89e56b3..6bf40a5f 100644 --- a/src/daemon/group.js +++ b/src/daemon/group.js @@ -322,12 +322,17 @@ class Group extends EventEmitter { redirect(req, res) { const { id } = req.params const { item } = req.hotel + let target = item.target; + let path = req.params[0] || '' + + + target = (target.endsWith('/') ? '' : '/') + path; // Make sure to send only one response const send = once(() => { - log(`Redirect - ${id} → ${item.target}`) - res.redirect(307, item.target) - }) + log(`Redirect - ${id} → ${target}`); + res.redirect(307, target); + }); if (item.start) { // Set target diff --git a/src/daemon/routers/index.js b/src/daemon/routers/index.js index 5f102f24..615d221f 100644 --- a/src/daemon/routers/index.js +++ b/src/daemon/routers/index.js @@ -17,7 +17,7 @@ module.exports = function(group) { router .get('/proxy.pac', pac) .all( - '/:id', + '/:id/*', group.exists.bind(group), group.start.bind(group), group.redirect.bind(group)