From 6d60e452e79feeeaefa7ede9d0f9ac098614462e Mon Sep 17 00:00:00 2001 From: Ardit Domi <32884230+arditdomi@users.noreply.github.com> Date: Fri, 6 May 2022 14:30:35 +0100 Subject: [PATCH] Fix demo shell proxies (#7613) --- demo-shell/proxy-helpers.js | 65 +++++++++++++++++++++++++++++++++++++ demo-shell/proxy.conf.js | 35 ++++++-------------- 2 files changed, 75 insertions(+), 25 deletions(-) create mode 100644 demo-shell/proxy-helpers.js diff --git a/demo-shell/proxy-helpers.js b/demo-shell/proxy-helpers.js new file mode 100644 index 00000000000..d210cddcd46 --- /dev/null +++ b/demo-shell/proxy-helpers.js @@ -0,0 +1,65 @@ +module.exports = { + getDeployedAppsProxy: function(processHost, deployedApps) { + let deployedAppProxy = {}; + + if (deployedApps) { + try { + const deployedAppsArray = JSON.parse(deployedApps); + for (const app of deployedAppsArray) { + const appName = app.name; + const appPath = `/${appName}`; + const appPathRewrite = `^/${appName}`; + + deployedAppProxy = { + ...deployedAppProxy, + [appPath]: { + target: `${processHost}`, + secure: false, + pathRewrite: { + [appPathRewrite]: appName, + }, + changeOrigin: true, + }, + }; + } + } catch (e) { + console.log(e); + } + } + + return deployedAppProxy; + }, + getShareProxy: function(host) { + console.log('Target for /alfresco', host); + return { + '/alfresco': { + target: host, + secure: false, + logLevel: 'debug', + changeOrigin: true, + onProxyReq: function(request) { + if(request["method"] !== "GET") + request.setHeader("origin", host); + }, + // workaround for REPO-2260 + onProxyRes: function (proxyRes, req, res) { + const header = proxyRes.headers['www-authenticate']; + if (header && header.startsWith('Basic')) { + proxyRes.headers['www-authenticate'] = 'x' + header; + } + }, + }, + } + }, + getApsProxy: function(host) { + console.log('Target for /activiti-app', host); + return { + '/activiti-app': { + target: host, + secure: false, + logLevel: 'debug', + changeOrigin: true, + }, + } + } +}; diff --git a/demo-shell/proxy.conf.js b/demo-shell/proxy.conf.js index c5005a561ef..9b904a33f25 100644 --- a/demo-shell/proxy.conf.js +++ b/demo-shell/proxy.conf.js @@ -1,29 +1,14 @@ require('dotenv').config(); -var PROXY_HOST_ADF = process.env.PROXY_HOST_ADF; -console.log('PROXY_HOST_ADF' + PROXY_HOST_ADF); +const { getDeployedAppsProxy, getShareProxy, getApsProxy } = require('./proxy-helpers'); + +const legacyHost = process.env.PROXY_HOST_ADF; +const cloudHost = process.env.CLOUD_PROXY_HOST_ADF; +const cloudApps = process.env.APP_CONFIG_APPS_DEPLOYED; +const apsHost = process.env.PROXY_HOST_ADF; + module.exports = { - "/alfresco": { - "target": (PROXY_HOST_ADF || "http://localhost:8080"), - "secure": false, - "pathRewrite": { - "^/alfresco/alfresco": "" - }, - "changeOrigin": true, - // workaround for REPO-2260 - onProxyRes: function (proxyRes, req, res) { - const header = proxyRes.headers['www-authenticate']; - if (header && header.startsWith('Basic')) { - proxyRes.headers['www-authenticate'] = 'x' + header; - } - } - }, - "/activiti-app": { - "target": (PROXY_HOST_ADF || "http://localhost:8080"), - "secure": false, - "pathRewrite": { - "^/activiti-app/activiti-app": "" - }, - "changeOrigin": true - } + ...getShareProxy(legacyHost), + ...getApsProxy(apsHost), + ...getDeployedAppsProxy(cloudHost, cloudApps) };