Add support for x-forwarded-prefix header

This commit is contained in:
Mathieu Naouache
2020-10-08 17:41:36 +02:00
committed by Sergey Konovalov
parent 076575d6a2
commit 763c153506

View File

@ -557,7 +557,7 @@ function containsAllAsciiNP(str) {
return /^[\040-\176]*$/.test(str);//non-printing characters
}
exports.containsAllAsciiNP = containsAllAsciiNP;
function getBaseUrl(protocol, hostHeader, forwardedProtoHeader, forwardedHostHeader) {
function getBaseUrl(protocol, hostHeader, forwardedProtoHeader, forwardedHostHeader, forwardedPrefixHeader) {
var url = '';
if (forwardedProtoHeader) {
url += forwardedProtoHeader;
@ -574,13 +574,16 @@ function getBaseUrl(protocol, hostHeader, forwardedProtoHeader, forwardedHostHea
} else {
url += 'localhost';
}
if (forwardedPrefixHeader) {
url += forwardedPrefixHeader;
}
return url;
}
function getBaseUrlByConnection(conn) {
return getBaseUrl('', conn.headers['host'], conn.headers['x-forwarded-proto'], conn.headers['x-forwarded-host']);
return getBaseUrl('', conn.headers['host'], conn.headers['x-forwarded-proto'], conn.headers['x-forwarded-host'], conn.headers['x-forwarded-prefix']);
}
function getBaseUrlByRequest(req) {
return getBaseUrl(req.protocol, req.get('host'), req.get('x-forwarded-proto'), req.get('x-forwarded-host'));
return getBaseUrl(req.protocol, req.get('host'), req.get('x-forwarded-proto'), req.get('x-forwarded-host'), req.get('x-forwarded-prefix'));
}
exports.getBaseUrlByConnection = getBaseUrlByConnection;
exports.getBaseUrlByRequest = getBaseUrlByRequest;