diff --git a/bootstrap.js b/bootstrap.js index f9f13c0..c5a791a 100644 --- a/bootstrap.js +++ b/bootstrap.js @@ -2,11 +2,16 @@ const request = require('request-promise'); const converter = require('rel-to-abs'); +const url = require('url'); const fs = require('fs'); const index = fs.readFileSync('index.html', 'utf8'); +const debug = process.env.debug_log || false; module.exports = function(app){ function setHeaders(res, origin){ + if(debug) { + console.info("setHeaders origin:" , JSON.stringify(origin.headers)); + } res.header(origin.headers); res.header('Access-Control-Allow-Origin', '*'); res.header('Access-Control-Allow-Credentials', false); @@ -15,23 +20,32 @@ module.exports = function(app){ } app.get('/*', (req, res) => { - let origionalUrl = req.originalUrl; + let originalUrl = req.originalUrl; let requestedUrl = req.params[0]; + let parsedRequestUrl = url.parse(requestedUrl) let corsBaseUrl = '//' + req.get('host'); - console.info(req.protocol + '://' + req.get('host') + origionalUrl); + console.info(req.protocol + '://' + req.get('host') + originalUrl); if(requestedUrl == ''){ res.send(index); return; + } + if(!parsedRequestUrl.host) { + res.status(400); + res.send("Invalid Url '" + requestedUrl + "'"); + return + } + + req.headers['host'] = parsedRequestUrl.host; + if(debug) { + console.info("Req headers:" , JSON.stringify(req.headers)); } request({ uri: requestedUrl, resolveWithFullResponse: true, - headers: { - 'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.116 Safari/537.36' - } + headers: req.headers }) .then(originResponse => { setHeaders(res, originResponse); @@ -53,4 +67,4 @@ module.exports = function(app){ return res.send(originResponse.message); }); }); -}; +}; \ No newline at end of file