diff options
Diffstat (limited to 'openecomp-ui/proxy-server.js')
-rw-r--r-- | openecomp-ui/proxy-server.js | 187 |
1 files changed, 98 insertions, 89 deletions
diff --git a/openecomp-ui/proxy-server.js b/openecomp-ui/proxy-server.js index 39d9c67d0a..99685424e2 100644 --- a/openecomp-ui/proxy-server.js +++ b/openecomp-ui/proxy-server.js @@ -2,101 +2,110 @@ const proxy = require('http-proxy-middleware'); -let localDevConfig = {}; -try { - localDevConfig = require('./devConfig'); -} catch (e) {} -const devConfig = Object.assign({}, require('./devConfig.defaults'), localDevConfig); +const devConfig = require('./tools/getDevConfig'); let devPort = process.env.PORT || devConfig.port; +module.exports = function(server) { + let cookieRules = devConfig.proxyConfig.cookieReplaceRules; + let cookies = devConfig.proxyConfig.cookies; + console.log('---------------------'); -module.exports = function (server) { - let cookieRules = devConfig.proxyConfig.cookieReplaceRules; - let cookies = devConfig.proxyConfig.cookies; - console.log('---------------------'); + let proxyConfigDefaults = { + changeOrigin: true, + secure: false, + onProxyRes: (proxyRes, req, res) => { + let setCookie = proxyRes.headers['set-cookie']; + if (setCookie) { + cookieRules.forEach(function(rule) { + setCookie[0] = setCookie[0].replace( + rule.replace, + rule.with + ); + }); + } + if ( + proxyRes.statusCode === 302 && + proxyRes.headers.location.indexOf(devConfig.proxyConfig.login) > + -1 + ) { + proxyRes.headers.location = `http://localhost:${devPort}/${ + devConfig.proxyConfig.redirectionPath + }`; + let myCookies = []; + for (let cookie in cookies) { + myCookies.push(cookie + '=' + cookies[cookie]); + } + res.setHeader('Set-Cookie', myCookies); + } + } + }; - let proxyConfigDefaults = { - changeOrigin: true, - secure: false, - onProxyRes: (proxyRes, req, res) => { - let setCookie = proxyRes.headers['set-cookie']; - if (setCookie) { - cookieRules.forEach(function(rule) { - setCookie[0] = setCookie[0].replace(rule.replace, rule.with); - }); - } - if (proxyRes.statusCode === 302 && proxyRes.headers.location.indexOf(devConfig.proxyConfig.login) > -1) { - proxyRes.headers.location = `http://localhost:${devPort}/${devConfig.proxyConfig.redirectionPath}`; - let myCookies = []; - for (let cookie in cookies) { - myCookies.push(cookie + '=' + cookies[cookie]); - } - res.setHeader('Set-Cookie', myCookies); - } - } - }; + let middlewares = [ + (req, res, next) => { + devConfig.proxyConfig.urlReplaceRules.forEach(function(rule) { + if (req.url.indexOf(rule.url) > -1) { + req.url = req.url.replace(rule.replace, rule.with); + } + }); + devConfig.proxyConfig.jsReplaceRules.forEach(function(rule) { + let regex = new RegExp('^(.*)' + rule.replace); + let match = req.url.match(regex); + let newUrl = match && match[1] + rule.with + '.js'; + if (newUrl) { + console.log(`REWRITING URL: ${req.url} -> ${newUrl}`); + req.url = newUrl; + } + }); + next(); + } + ]; - let middlewares = [ - (req, res, next) => { - devConfig.proxyConfig.urlReplaceRules.forEach(function(rule) { - if (req.url.indexOf(rule.url) > -1) { - req.url = req.url.replace(rule.replace, rule.with); - } - }); - devConfig.proxyConfig.jsReplaceRules.forEach(function(rule) { - let regex = new RegExp('^(.*)' + rule.replace); - let match = req.url.match(regex); - let newUrl = match && match[1] + rule.with + '.js'; - if (newUrl) { - console.log(`REWRITING URL: ${req.url} -> ${newUrl}`); - req.url = newUrl; - } - }); - next(); - } - ]; + let proxies = []; + // standalone back-end (proxyTarget) has higher priority, so it should be first + if (devConfig.proxyTarget) { + console.log('Onboarding proxy set to : ' + devConfig.proxyTarget); + proxies.push({ + target: devConfig.proxyTarget, + config: devConfig.proxyConfig.onboardingProxy + }); + } else { + console.log( + 'Onboarding proxy set to : ' + devConfig.proxyCatalogTarget + ); + } + console.log('Catalog proxy set to : ' + devConfig.proxyCatalogTarget); + proxies.push({ + target: devConfig.proxyCatalogTarget, + config: devConfig.proxyConfig.catalogProxy + }); + proxies.forEach(function(p) { + middlewares.push( + proxy( + p.config.proxy, + Object.assign({}, proxyConfigDefaults, { + target: p.target, + pathRewrite: p.config.rewrite + }) + ) + ); + }); - let proxies = []; + let websocketTarget = devConfig.proxyCatalogTarget; + if (devConfig.proxyWebsocketTarget) { + websocketTarget = devConfig.proxyWebsocketTarget; + } + console.log('Websocket proxy set to : ' + websocketTarget); + console.log('---------------------'); + var wsProxy = proxy( + devConfig.proxyConfig.websocketProxy.proxy, + Object.assign({}, proxyConfigDefaults, { + target: websocketTarget, + ws: true + }) + ); + middlewares.push(wsProxy); - // standalone back-end (proxyTarget) has higher priority, so it should be first - if (devConfig.proxyTarget) { - console.log('Onboarding proxy set to : ' + devConfig.proxyTarget); - proxies.push({ - target : devConfig.proxyTarget, - config: devConfig.proxyConfig.onboardingProxy} - ); - } else { - console.log('Catalog proxy set to : ' + devConfig.proxyCatalogTarget); - } - console.log('Catalog proxy set to : ' + devConfig.proxyCatalogTarget); - proxies.push({ - target : devConfig.proxyCatalogTarget, - config: devConfig.proxyConfig.catalogProxy} - ); - proxies.forEach(function(p) { - middlewares.push( - proxy(p.config.proxy, Object.assign({}, proxyConfigDefaults, { - target: p.target, - pathRewrite: p.config.rewrite - })) - ); - - }); - - let websocketTarget = devConfig.proxyCatalogTarget; - if (devConfig.proxyWebsocketTarget) { - websocketTarget = devConfig.proxyWebsocketTarget; - } - console.log('Websocket proxy set to : ' + websocketTarget); - console.log('---------------------'); - var wsProxy = proxy(devConfig.proxyConfig.websocketProxy.proxy, Object.assign({}, proxyConfigDefaults, { - target: websocketTarget, - ws: true - })); - middlewares.push(wsProxy); - - - server.use(middlewares); - server.on('upgrade', wsProxy.upgrade); + server.use(middlewares); + server.on('upgrade', wsProxy.upgrade); }; |