openhim-core
Version:
The OpenHIM core application that provides logging and routing of http requests
50 lines (37 loc) • 1.21 kB
JavaScript
var Q, SDC, application, config, domain, logger, os, sdc, setupProxyHeaders, statsdServer;
logger = require("winston");
Q = require("q");
config = require('../config/config');
statsdServer = config.get('statsd');
application = config.get('application');
SDC = require('statsd-client');
os = require('os');
domain = (os.hostname()) + "." + application.name + ".appMetrics";
sdc = new SDC(statsdServer);
exports.setupProxyHeaders = setupProxyHeaders = function(ctx) {
var setOrAppendHeader;
setOrAppendHeader = function(ctx, header, value) {
if (!value) {
return;
}
if (ctx.header[header]) {
return ctx.header[header] = ctx.header[header] + ", " + value;
} else {
return ctx.header[header] = "" + value;
}
};
setOrAppendHeader(ctx, 'X-Forwarded-For', ctx.request.ip);
return setOrAppendHeader(ctx, 'X-Forwarded-Host', ctx.request.host);
};
exports.koaMiddleware = function*(next) {
var startTime;
if (statsdServer.enabled) {
startTime = new Date();
}
exports.setupProxyHeaders(this);
if (statsdServer.enabled) {
sdc.timing(domain + ".proxyHeadersMiddleware", startTime);
}
return (yield next);
};
//# sourceMappingURL=proxy.js.map