UNPKG

hapi-bouncer

Version:
73 lines (53 loc) 2.18 kB
'use strict'; exports.__esModule = true; var _debug = require('debug'); var _debug2 = _interopRequireDefault(_debug); var _sanitizeCookie = require('./utils/sanitizeCookie'); var _sanitizeCookie2 = _interopRequireDefault(_sanitizeCookie); var _ParsedUrl = require('./utils/ParsedUrl'); var _ParsedUrl2 = _interopRequireDefault(_ParsedUrl); var _createHandler = require('./createHandler'); var _createHandler2 = _interopRequireDefault(_createHandler); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var debug = (0, _debug2.default)('hapi-bouncer:proxyHapiPlugin:debug'); function routeToHapiRoute(_ref, handler) { var from = _ref.from, to = _ref.to; debug('add route %s://%s%s%s => %s://%s%s', from.protocol, from.hostname, from.port ? ':' + from.port : '', from.path, to.protocol, to.hostname, to.port ? ':' + to.port : ''); var prefix = from.path; if (prefix[prefix.length - 1] === '/') { prefix = prefix.substring(0, -1); } return { method: '*', vhost: from.hostname, path: prefix + '/{p*}', handler: handler }; } var proxyHapiPlugin = { register: function register(server, opts, next) { var sanitizeCookie = opts.sanitizeCookie || _sanitizeCookie2.default; var createHandler = opts.createHandler || _createHandler2.default; function onRequest(request, reply) { var req = request.raw.req; var cookie = req.headers.cookie; // sanitize bad cookies, like TestForThirdPartyCookie=yes; __promo_session=0_1437749424386; true; _ga_cid=1001702645.1437749425" if (cookie) { req.headers.cookie = sanitizeCookie(cookie); } return reply.continue(); } opts.links.forEach(function (link) { server.route(routeToHapiRoute(link, createHandler(link))); }); server.ext('onRequest', onRequest); next(); } }; proxyHapiPlugin.register.attributes = { name: 'proxyHapiPlugin', version: '1.0.0' }; exports.default = proxyHapiPlugin; //# sourceMappingURL=proxyHapiPlugin.js.map