UNPKG

kibana-riya

Version:

Kibana is an open source (Apache Licensed), browser based analytics and search dashboard for Elasticsearch. Kibana is a snap to setup and start using. Kibana strives to be easy to get started with, while also being flexible and powerful, just like Elastic

83 lines (64 loc) 2.46 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } var _fs = require('fs'); var _url = require('url'); var _elasticHttpolyglot = require('@elastic/httpolyglot'); var _elasticHttpolyglot2 = _interopRequireDefault(_elasticHttpolyglot); var _tls_ciphers = require('./tls_ciphers'); var _tls_ciphers2 = _interopRequireDefault(_tls_ciphers); exports['default'] = function (kbnServer, server, config) { // this mixin is used outside of the kbn server, so it MUST work without a full kbnServer object. kbnServer = null; var host = config.get('server.host'); var port = config.get('server.port'); var connectionOptions = { host: host, port: port, state: { strictHeader: false }, routes: { cors: config.get('server.cors'), payload: { maxBytes: config.get('server.maxPayloadBytes') } } }; // enable tlsOpts if ssl key and cert are defined var useSsl = config.get('server.ssl.key') && config.get('server.ssl.cert'); // not using https? well that's easy! if (!useSsl) { server.connection(connectionOptions); return; } server.connection(_extends({}, connectionOptions, { tls: true, listener: _elasticHttpolyglot2['default'].createServer({ key: (0, _fs.readFileSync)(config.get('server.ssl.key')), cert: (0, _fs.readFileSync)(config.get('server.ssl.cert')), ciphers: _tls_ciphers2['default'], // We use the server's cipher order rather than the client's to prevent the BEAST attack honorCipherOrder: true }) })); server.ext('onRequest', function (req, reply) { // A request sent through a HapiJS .inject() doesn't have a socket associated with the request // which causes a failure. if (!req.raw.req.socket || req.raw.req.socket.encrypted) { reply['continue'](); } else { reply.redirect((0, _url.format)({ port: port, protocol: 'https', hostname: host, pathname: req.url.pathname, search: req.url.search })); } }); }; module.exports = exports['default'];