diff --git a/lib/core-callback/sender.js b/lib/core-callback/sender.js index 3504832..9faa476 100644 --- a/lib/core-callback/sender.js +++ b/lib/core-callback/sender.js @@ -2,6 +2,7 @@ const MODULE_NAME = 'CORE-CALLBACK.SENDER'; const axios = require('axios'); const config = require('komodo-sdk/config'); +const validUrl = require('valid-url'); const logger = require('tektrans-logger'); const dumper = require('./dumper/sender'); @@ -82,10 +83,10 @@ const sender = async (data, xid, retry) => { }); } - if (!data.reverse_url) { - logger.verbose(`${MODULE_NAME} C4FF18FB: Ignoring missing reverse url`, { + if (!data.reverse_url || !validUrl.isWebUri(data.reverse_url)) { + logger.verbose(`${MODULE_NAME} C4FF18FB: Ignoring invalid reverse url`, { xid, - dataFromCore: data, + reverseUrl: data && data.reverse_url, }); return; diff --git a/lib/webhook-sender.js b/lib/webhook-sender.js index 1ca7f55..7c9bfcb 100644 --- a/lib/webhook-sender.js +++ b/lib/webhook-sender.js @@ -5,6 +5,7 @@ const moment = require('moment'); const fs = require('fs'); const path = require('path'); const stringify = require('json-stringify-pretty-compact'); +const validUrl = require('valid-url'); const config = require('komodo-sdk/config'); const logger = require('tektrans-logger'); @@ -18,6 +19,8 @@ const sleepBeforeRetryMs = Number(config.webhook && config.webhook.sleep_before_ const baseDumpDir = path.join('dump', 'webhook-sender'); +const DO_WEBHOOK = config.webhook && config.webhook.url && validUrl.isWebUri(config.webhook.url); + if (!fs.existsSync(baseDumpDir)) { fs.mkdirSync(baseDumpDir, { recursive: true }); } @@ -62,7 +65,7 @@ const dumper = async (xid, webhookType, body) => { }; const sender = async (xid, webhookType, body, retry) => { - if (!config.webhook || !config.webhook.url) { + if (!DO_WEBHOOK) { return; } diff --git a/package-lock.json b/package-lock.json index 6adad69..28a8a38 100644 --- a/package-lock.json +++ b/package-lock.json @@ -21,7 +21,8 @@ "request": "^2.88.0", "tektrans-logger": "^1.2.3", "uniqid": "^5.3.0", - "uuid": "^3.3.3" + "uuid": "^3.3.3", + "valid-url": "^1.0.9" }, "devDependencies": { "eslint": "^6.8.0", diff --git a/package.json b/package.json index 0c17ac0..3616302 100644 --- a/package.json +++ b/package.json @@ -41,6 +41,7 @@ "request": "^2.88.0", "tektrans-logger": "^1.2.3", "uniqid": "^5.3.0", - "uuid": "^3.3.3" + "uuid": "^3.3.3", + "valid-url": "^1.0.9" } }