Commit 8910bfe4370010dd3c02beb7f4096a05bbf61856

Authored by Adhidarma Hadiwinoto
1 parent b7d56386e4
Exists in master

conditional ipfilter

Showing 1 changed file with 1 additions and 1 deletions Inline Diff

lib/http-listener.js
1 "use strict"; 1 "use strict";
2 2
3 const express = require('express'); 3 const express = require('express');
4 const bodyParser = require('body-parser'); 4 const bodyParser = require('body-parser');
5 const ipfilter = require('express-ipfilter').IpFilter 5 const ipfilter = require('express-ipfilter').IpFilter
6 6
7 const config = require('komodo-sdk/config'); 7 const config = require('komodo-sdk/config');
8 const logger = require('komodo-sdk/logger'); 8 const logger = require('komodo-sdk/logger');
9 9
10 const commandHandler = require('./command-handler'); 10 const commandHandler = require('./command-handler');
11 11
12 const app = express(); 12 const app = express();
13 const port = config && config.listener && config.listener.http && config.listener.http.port ? config.listener.http.port : 32979; 13 const port = config && config.listener && config.listener.http && config.listener.http.port ? config.listener.http.port : 32979;
14 14
15 function mainHandler(req, res) { 15 function mainHandler(req, res) {
16 16
17 if (!req.body) req.body = {}; 17 if (!req.body) req.body = {};
18 18
19 if (!req.query.report_port && !req.body.report_port) { 19 if (!req.query.report_port && !req.body.report_port) {
20 res.end('ERROR. Undefined parameter: report_port'); 20 res.end('ERROR. Undefined parameter: report_port');
21 return; 21 return;
22 } 22 }
23 23
24 if (!req.query.from && !req.body.from) { 24 if (!req.query.from && !req.body.from) {
25 res.end('ERROR. Undefined parameter: from'); 25 res.end('ERROR. Undefined parameter: from');
26 return; 26 return;
27 } 27 }
28 28
29 if (!req.query.msg && !req.body.msg) { 29 if (!req.query.msg && !req.body.msg) {
30 res.end('ERROR. Undefined parameter: msg'); 30 res.end('ERROR. Undefined parameter: msg');
31 return; 31 return;
32 } 32 }
33 33
34 const params = { 34 const params = {
35 origin: req.body.origin || req.query.origin || 'MESSAGING', 35 origin: req.body.origin || req.query.origin || 'MESSAGING',
36 report_ip: req.body.report_ip || req.query.report_ip || req.ip, 36 report_ip: req.body.report_ip || req.query.report_ip || req.ip,
37 report_port: req.body.report_port || req.query.report_port, 37 report_port: req.body.report_port || req.query.report_port,
38 from: req.body.from || req.query.from, 38 from: req.body.from || req.query.from,
39 msg: req.body.msg || req.query.msg 39 msg: req.body.msg || req.query.msg
40 } 40 }
41 41
42 commandHandler(req.body.msg || req.query.msg, params, function(err, coreResponseObject, responseParams) { 42 commandHandler(req.body.msg || req.query.msg, params, function(err, coreResponseObject, responseParams) {
43 if (err) { 43 if (err) {
44 res.end('ERROR. ' + err); 44 res.end('ERROR. ' + err);
45 } 45 }
46 else if (coreResponseObject) { 46 else if (coreResponseObject) {
47 res.json(coreResponseObject); 47 res.json(coreResponseObject);
48 } 48 }
49 else { 49 else {
50 res.end(responseParams.body); 50 res.end(responseParams.body);
51 } 51 }
52 }) 52 })
53 } 53 }
54 54
55 app.use(ipfilter(config.ip_whitelist, {mode: 'allow', log: false})); 55 config.ip_whitelist && config.ip_whitelist.length && app.use(ipfilter(config.ip_whitelist, {mode: 'allow', log: false}));
56 56
57 app.get('/', mainHandler); 57 app.get('/', mainHandler);
58 app.post('/', bodyParser.urlencoded({extended: true}), mainHandler); 58 app.post('/', bodyParser.urlencoded({extended: true}), mainHandler);
59 59
60 app.listen(port, function() { 60 app.listen(port, function() {
61 logger.info('HTTP listener started', {port: port, app_env: app.get('env')}); 61 logger.info('HTTP listener started', {port: port, app_env: app.get('env')});
62 }); 62 });