Add 'overrideUrlPrefix' support to web server

This commit is contained in:
Bryan Ashby 2017-02-16 21:40:05 -07:00
parent 6a684266a2
commit ec3e3f0755
2 changed files with 18 additions and 12 deletions

View File

@ -16,6 +16,7 @@ const paths = require('path');
const async = require('async'); const async = require('async');
const fs = require('fs'); const fs = require('fs');
const mimeTypes = require('mime-types'); const mimeTypes = require('mime-types');
const _ = require('lodash');
const WEB_SERVER_PACKAGE_NAME = 'codes.l33t.enigma.web.server'; const WEB_SERVER_PACKAGE_NAME = 'codes.l33t.enigma.web.server';
@ -166,19 +167,23 @@ class FileAreaWebAccess {
// //
let schema; let schema;
let port; let port;
if(Config.contentServers.web.https.enabled) { if(_.isString(Config.contentServers.web.overrideUrlPrefix)) {
schema = 'https://'; return `${Config.contentServers.web.overrideUrlPrefix}${Config.fileBase.web.path}${hashId}`;
port = (443 === Config.contentServers.web.https.port) ?
'' :
`:${Config.contentServers.web.https.port}`;
} else { } else {
schema = 'http://'; if(Config.contentServers.web.https.enabled) {
port = (80 === Config.contentServers.web.http.port) ? schema = 'https://';
'' : port = (443 === Config.contentServers.web.https.port) ?
`:${Config.contentServers.web.http.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) { getExistingTempDownloadServeItem(client, fileEntry, cb) {

View File

@ -21,7 +21,8 @@ This will configure HTTP for port 8080 (override with `port`). To additionally e
contentServers: { contentServers: {
web: { web: {
domain: bbs.yourdomain.com 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: { https: {
enabled: true enabled: true
port: 8443 port: 8443