openhim-core
Version:
The OpenHIM core application that provides logging and routing of http requests
66 lines (51 loc) • 1.76 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);
const dummyClient = new _clients.ClientModel({
clientID: 'DUMMY-POLLING-USER',
clientDomain: 'openhim.org',
name: 'DUMMY-POLLING-USER',
roles: ['polling']
});
function authenticateUser(ctx, done) {
ctx.authenticated = dummyClient;
return done(null, dummyClient);
}
/*
* Koa middleware for bypassing authentication for polling requests
*/
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}.pollingBypassAuthenticationMiddleware`, startTime);
}
await next();
} else {
ctx.response.status = 401;
if (statsdServer.enabled) {
return sdc.timing(`${domain}.pollingBypassAuthenticationMiddleware`, startTime);
}
}
}
//# sourceMappingURL=pollingBypassAuthentication.js.map