openhim-core
Version:
The OpenHIM core application that provides logging and routing of http requests
68 lines (54 loc) • 1.87 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.authenticateUser = authenticateUser;
exports.koaMiddleware = koaMiddleware;
var _statsdClient = require('statsd-client');
var _statsdClient2 = _interopRequireDefault(_statsdClient);
var _os = require('os');
var _os2 = _interopRequireDefault(_os);
var _clients = require('../model/clients');
var _config = require('../config');
var _util = require('util');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
const statsdServer = _config.config.get('statsd');
const application = _config.config.get('application');
const domain = `${_os2.default.hostname()}.${application.name}.appMetrics`;
const sdc = new _statsdClient2.default(statsdServer);
function authenticateUser(ctx, done) {
return _clients.ClientModel.findOne({ _id: ctx.request.header.clientid }, (err, client) => {
if (err) {
return done(err);
}
ctx.authenticated = client;
ctx.parentID = ctx.request.header.parentid;
ctx.taskID = ctx.request.header.taskid;
return done(null, client);
});
}
/*
* Koa middleware for authentication by basic auth
*/
async function koaMiddleware(ctx, next) {
let startTime;
if (statsdServer.enabled) {
startTime = new Date();
}
const _authenticateUser = (0, _util.promisify)(authenticateUser);
await _authenticateUser(ctx);
if (ctx.authenticated != null) {
if (statsdServer.enabled) {
sdc.timing(`${domain}.rerunBypassAuthenticationMiddleware`, startTime);
}
await next();
} else {
ctx.authenticated = { ip: '127.0.0.1'
// This is a public channel, allow rerun
};if (statsdServer.enabled) {
sdc.timing(`${domain}.rerunBypassAuthenticationMiddleware`, startTime);
}
await next();
}
}
//# sourceMappingURL=rerunBypassAuthentication.js.map