UNPKG

openhim-core

Version:

The OpenHIM core application that provides logging and routing of http requests

66 lines (51 loc) 1.76 kB
'use strict'; 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