openhim-core
Version:
The OpenHIM core application that provides logging and routing of http requests
145 lines (108 loc) • 4.14 kB
JavaScript
var Q, SDC, application, authorisation, basicAuthentication, compress, config, domain, events, getRawBody, koa, messageStore, os, pollingBypassAuthentication, pollingBypassAuthorisation, proxy, rawBodyReader, requestMatching, rerunBypassAuthentication, rerunBypassAuthorisation, rerunUpdateTransactionTask, retrieveTCPTransaction, rewrite, router, sdc, stats, tcpAdapter, tcpBypassAuthentication, tlsAuthentication;
koa = require('koa');
router = require('./middleware/router');
messageStore = require('./middleware/messageStore');
basicAuthentication = require('./middleware/basicAuthentication');
tlsAuthentication = require("./middleware/tlsAuthentication");
rerunBypassAuthentication = require("./middleware/rerunBypassAuthentication");
rerunBypassAuthorisation = require("./middleware/rerunBypassAuthorisation");
rerunUpdateTransactionTask = require("./middleware/rerunUpdateTransactionTask");
tcpBypassAuthentication = require("./middleware/tcpBypassAuthentication");
retrieveTCPTransaction = require("./middleware/retrieveTCPTransaction");
requestMatching = require('./middleware/requestMatching');
authorisation = require('./middleware/authorisation');
stats = require('./stats');
pollingBypassAuthorisation = require('./middleware/pollingBypassAuthorisation');
pollingBypassAuthentication = require('./middleware/pollingBypassAuthentication');
events = require('./middleware/events');
proxy = require('./middleware/proxy');
rewrite = require('./middleware/rewriteUrls');
config = require('./config/config');
config.authentication = config.get('authentication');
getRawBody = require('raw-body');
tcpAdapter = require('./tcpAdapter');
Q = require("q");
config.statsd = config.get('statsd');
application = config.get('application');
SDC = require('statsd-client');
os = require('os');
domain = (os.hostname()) + "." + application.name + ".appMetrics";
sdc = new SDC(config.statsd);
compress = require('koa-compress');
rawBodyReader = function*(next) {
var body, startTime;
if (config.statsd.enabled) {
startTime = new Date();
}
body = (yield getRawBody(this.req, {
length: this.length,
encoding: this.charset
}));
if (body) {
this.body = body;
}
if (config.statsd.enabled) {
sdc.timing(domain + ".rawBodyReaderMiddleware", startTime);
}
return (yield next);
};
exports.setupApp = function(done) {
var app;
app = koa();
if (config.authentication.enableBasicAuthentication) {
app.use(basicAuthentication.koaMiddleware);
}
if (config.authentication.enableMutualTLSAuthentication) {
app.use(tlsAuthentication.koaMiddleware);
}
app.use(rawBodyReader);
app.use(requestMatching.koaMiddleware);
app.use(authorisation.koaMiddleware);
app.use(compress({
threshold: 8,
flush: require("zlib").Z_SYNC_FLUSH
}));
app.use(proxy.koaMiddleware);
app.use(messageStore.koaMiddleware);
app.use(rewrite.koaMiddleware);
app.use(events.koaMiddleware);
app.use(router.koaMiddleware);
return done(app);
};
exports.rerunApp = function(done) {
var app;
app = koa();
app.use(rawBodyReader);
app.use(rerunBypassAuthentication.koaMiddleware);
app.use(rerunBypassAuthorisation.koaMiddleware);
app.use(rerunUpdateTransactionTask.koaMiddleware);
app.use(messageStore.koaMiddleware);
app.use(authorisation.koaMiddleware);
app.use(events.koaMiddleware);
app.use(router.koaMiddleware);
return done(app);
};
exports.tcpApp = function(done) {
var app;
app = koa();
app.use(rawBodyReader);
app.use(retrieveTCPTransaction.koaMiddleware);
app.use(tcpBypassAuthentication.koaMiddleware);
app.use(proxy.koaMiddleware);
app.use(messageStore.koaMiddleware);
app.use(events.koaMiddleware);
app.use(router.koaMiddleware);
return done(app);
};
exports.pollingApp = function(done) {
var app;
app = koa();
app.use(rawBodyReader);
app.use(pollingBypassAuthentication.koaMiddleware);
app.use(pollingBypassAuthorisation.koaMiddleware);
app.use(messageStore.koaMiddleware);
app.use(events.koaMiddleware);
app.use(router.koaMiddleware);
return done(app);
};
//# sourceMappingURL=koaMiddleware.js.map