mail: proxy queue routes correctly

This commit is contained in:
Girish Ramakrishnan
2022-09-20 19:20:52 +02:00
parent 81b59eae36
commit 6382216dc5
3 changed files with 9 additions and 9 deletions

View File

@@ -27,9 +27,8 @@ async function restart(req, res, next) {
next();
}
async function proxyToMailContainer(port, req, res, next) {
async function proxyToMailContainer(port, pathname, req, res, next) {
const parsedUrl = url.parse(req.url, true /* parseQueryString */);
const pathname = req.path.split('/').pop();
// do not proxy protected values
delete parsedUrl.query['access_token'];
@@ -40,7 +39,7 @@ async function proxyToMailContainer(port, req, res, next) {
if (error) return next(BoxError.toHttpError(error));
parsedUrl.query['access_token'] = addonDetails.token;
req.url = url.format({ pathname: pathname, query: parsedUrl.query });
req.url = url.format({ pathname, query: parsedUrl.query });
const proxyOptions = url.parse(`http://${addonDetails.ip}:${port}`);
const mailserverProxy = middleware.proxy(proxyOptions);
@@ -57,11 +56,13 @@ async function proxyToMailContainer(port, req, res, next) {
}
async function proxy(req, res, next) {
proxyToMailContainer(3000, req, res, next);
const pathname = req.path.split('/').pop();
proxyToMailContainer(3000, pathname, req, res, next);
}
async function queueProxy(req, res, next) {
proxyToMailContainer(6000, req, res, next);
proxyToMailContainer(6000, req.path.replace('/', '/tempfail_queue/'), req, res, next);
}
async function getLocation(req, res, next) {