summaryrefslogtreecommitdiffstats
path: root/openecomp-ui/proxy-server.js
diff options
context:
space:
mode:
Diffstat (limited to 'openecomp-ui/proxy-server.js')
-rw-r--r--openecomp-ui/proxy-server.js187
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);
};