From ec3e3f0755bb591641ebd0b8fb9ebc2c68907d8a Mon Sep 17 00:00:00 2001 From: Bryan Ashby Date: Thu, 16 Feb 2017 21:40:05 -0700 Subject: [PATCH] Add 'overrideUrlPrefix' support to web server --- core/file_area_web.js | 27 ++++++++++++++++----------- docs/web_server.md | 3 ++- 2 files changed, 18 insertions(+), 12 deletions(-) diff --git a/core/file_area_web.js b/core/file_area_web.js index fc2ae61b..4cffa69c 100644 --- a/core/file_area_web.js +++ b/core/file_area_web.js @@ -16,6 +16,7 @@ const paths = require('path'); const async = require('async'); const fs = require('fs'); const mimeTypes = require('mime-types'); +const _ = require('lodash'); const WEB_SERVER_PACKAGE_NAME = 'codes.l33t.enigma.web.server'; @@ -166,19 +167,23 @@ class FileAreaWebAccess { // let schema; let port; - if(Config.contentServers.web.https.enabled) { - schema = 'https://'; - port = (443 === Config.contentServers.web.https.port) ? - '' : - `:${Config.contentServers.web.https.port}`; + if(_.isString(Config.contentServers.web.overrideUrlPrefix)) { + return `${Config.contentServers.web.overrideUrlPrefix}${Config.fileBase.web.path}${hashId}`; } else { - schema = 'http://'; - port = (80 === Config.contentServers.web.http.port) ? - '' : - `:${Config.contentServers.web.http.port}`; + if(Config.contentServers.web.https.enabled) { + schema = 'https://'; + port = (443 === Config.contentServers.web.https.port) ? + '' : + `:${Config.contentServers.web.https.port}`; + } else { + schema = 'http://'; + port = (80 === Config.contentServers.web.http.port) ? + '' : + `:${Config.contentServers.web.http.port}`; + } + + return `${schema}${Config.contentServers.web.domain}${port}${Config.fileBase.web.path}${hashId}`; } - - return `${schema}${Config.contentServers.web.domain}${port}${Config.fileBase.web.path}${hashId}`; } getExistingTempDownloadServeItem(client, fileEntry, cb) { diff --git a/docs/web_server.md b/docs/web_server.md index 740515e9..8c341191 100644 --- a/docs/web_server.md +++ b/docs/web_server.md @@ -21,7 +21,8 @@ This will configure HTTP for port 8080 (override with `port`). To additionally e contentServers: { web: { domain: bbs.yourdomain.com - + // set 'overrideUrlPrefix' if for example, you use a transparent proxy in front of ENiGMA and need to be explicit about URLs the system hands out + overrideUrlPrefix: https://bbs.yourdomain.com https: { enabled: true port: 8443