From 92c93408205cc040d93032b784de6c6f8eb6fb07 Mon Sep 17 00:00:00 2001
From: Xiao Gui <xgui3783@gmail.com>
Date: Fri, 25 Oct 2019 12:40:40 +0200
Subject: [PATCH] bugfix: homogenize host_pathname definition in line with okd

---
 deploy/auth/util.js                        | 3 ++-
 deploy/datasets/supplements/previewFile.js | 3 ++-
 deploy/server.js                           | 5 +++++
 3 files changed, 9 insertions(+), 2 deletions(-)

diff --git a/deploy/auth/util.js b/deploy/auth/util.js
index 554d5f497..c9240bf3d 100644
--- a/deploy/auth/util.js
+++ b/deploy/auth/util.js
@@ -2,10 +2,11 @@ const { configureAuth } = require('./oidc')
 const jwtDecode = require('jwt-decode')
 
 const HOSTNAME = process.env.HOSTNAME || 'http://localhost:3000'
+const HOST_PATHNAME = process.env.HOST_PATHNAME || ''
 const clientId = process.env.HBP_CLIENTID || 'no hbp id'
 const clientSecret = process.env.HBP_CLIENTSECRET || 'no hbp client secret'
 const discoveryUrl = 'https://services.humanbrainproject.eu/oidc'
-const redirectUri = `${HOSTNAME}/hbp-oidc/cb`
+const redirectUri = `${HOSTNAME}${HOST_PATHNAME}/hbp-oidc/cb`
 
 let REFRESH_TOKEN = process.env.REFRESH_TOKEN || null
 const CLIENT_NOT_INIT = `Client is not initialised.`
diff --git a/deploy/datasets/supplements/previewFile.js b/deploy/datasets/supplements/previewFile.js
index 2600b01bb..7c3edcaab 100644
--- a/deploy/datasets/supplements/previewFile.js
+++ b/deploy/datasets/supplements/previewFile.js
@@ -6,6 +6,7 @@ const DISABLE_JUBRAIN_PMAP = process.env.DISABLE_JUBRAIN_PMAP
 const DISABLE_JUBRAIN_PMAP_V17 = process.env.DISABLE_JUBRAIN_PMAP_V17
 const DISABLE_DWM_PMAP = process.env.DISABLE_DWM_PMAP
 const HOSTNAME = process.env.HOSTNAME || 'http://localhost:3000'
+const HOST_PATHNAME = process.env.HOST_PATHNAME || ''
 
 let previewMap = new Map(),
   previewMapKeySet = new Set()
@@ -48,7 +49,7 @@ exports.getPreviewFile = ({ datasetName, templateSelected }) => previewMap.get(d
             ...file,
             ...(file.url && !/^http/.test(file.url)
               ? {
-                url: `${HOSTNAME}/${file.url}`
+                url: `${HOSTNAME}${HOST_PATHNAME}/${file.url}`
               }
               : {})
           }
diff --git a/deploy/server.js b/deploy/server.js
index a0f8950e8..ce483fb83 100644
--- a/deploy/server.js
+++ b/deploy/server.js
@@ -66,6 +66,11 @@ const PORT = process.env.PORT || 3000
 // n.b. no trailing slash is important
 const HOST_PATHNAME = process.env.HOST_PATHNAME || ''
 
+if(HOST_PATHNAME !== '') {
+  if (HOST_PATHNAME.slice(0,1) !== '/') throw new Error(`HOST_PATHNAME, if defined and non-empty, should start with a leading slash. HOST_PATHNAME: ${HOST_PATHNAME}`)
+  if (HOST_PATHNAME.slice(-1) === '/') throw new Error(`HOST_PATHNAME, if defined and non-emtpy, should NOT end with a slash. HOST_PATHNAME: ${HOST_PATHNAME}`)
+}
+
 server.disable('x-powered-by')
 
 server.use(HOST_PATHNAME, app)
-- 
GitLab