diff --git a/src/utils/MetricsUtil.js b/src/utils/MetricsUtil.js index 3447f0f577..8026fe73c8 100644 --- a/src/utils/MetricsUtil.js +++ b/src/utils/MetricsUtil.js @@ -7,7 +7,7 @@ var util = require('./Util'); var settings; try { - settings = JSON.parse(fs.readFileSync(path.join(__dirname, '..', 'settings.json'), 'utf8')); + settings = JSON.parse(fs.readFileSync(path.join(__dirname, '../..', 'settings.json'), 'utf8')); } catch (err) { settings = {}; } diff --git a/src/utils/Util-test.js b/src/utils/Util-test.js index 6ad6db2849..8afd27e72c 100644 --- a/src/utils/Util-test.js +++ b/src/utils/Util-test.js @@ -24,6 +24,10 @@ describe('Util', function () { var testdata = String.raw`/Users/johnappleseed/.docker/machine/machines/dev2/id_rsa docker@localhost echo`; expect(util.removeSensitiveData(testdata).indexOf('/Users/johnappleseed/')).toEqual(-1); expect(util.removeSensitiveData(testdata).indexOf('/Users//')).toNotEqual(-1); + + testdata = String.raw`/Users/some.wei-rdUsername/.docker/machine/machines/dev2/id_rsa docker@localhost echo`; + expect(util.removeSensitiveData(testdata).indexOf('/Users/johnappleseed/')).toEqual(-1); + expect(util.removeSensitiveData(testdata).indexOf('/Users//')).toNotEqual(-1); }); it ('returns input if empty or not a string', function () { diff --git a/src/utils/Util.js b/src/utils/Util.js index 4473549441..5ec0881b38 100644 --- a/src/utils/Util.js +++ b/src/utils/Util.js @@ -37,7 +37,7 @@ module.exports = { } return str.replace(/-----BEGIN CERTIFICATE-----.*-----END CERTIFICATE-----/mg, '') .replace(/-----BEGIN RSA PRIVATE KEY-----.*-----END RSA PRIVATE KEY-----/mg, '') - .replace(/\/Users\/[a-z_][a-z0-9_]+\//mg, '/Users//'); + .replace(/\/Users\/.*\//mg, '/Users//'); }, resourceDir: function () { return process.env.RESOURCES_PATH; @@ -48,7 +48,7 @@ module.exports = { settingsjson: function () { var settingsjson = {}; try { - settingsjson = JSON.parse(fs.readFileSync(path.join(__dirname, '..', 'settings.json'), 'utf8')); + settingsjson = JSON.parse(fs.readFileSync(path.join(__dirname, '../..', 'settings.json'), 'utf8')); } catch (err) {} return settingsjson; }, diff --git a/src/utils/WebUtil.js b/src/utils/WebUtil.js index bbd63a99fe..318d529764 100644 --- a/src/utils/WebUtil.js +++ b/src/utils/WebUtil.js @@ -3,6 +3,7 @@ var fs = require('fs'); var util = require('./Util'); var path = require('path'); var bugsnag = require('bugsnag-js'); +var metrics = require('./MetricsUtil'); var WebUtil = { addWindowSizeSaving: function () { @@ -24,6 +25,7 @@ var WebUtil = { }, addBugReporting: function () { var settingsjson = util.settingsjson(); + if (settingsjson.bugsnag) { bugsnag.apiKey = settingsjson.bugsnag; bugsnag.autoNotify = true; @@ -35,6 +37,10 @@ var WebUtil = { }; bugsnag.beforeNotify = function(payload) { + if (!metrics.enabled()) { + return false; + } + payload.stacktrace = util.removeSensitiveData(payload.stacktrace); payload.context = util.removeSensitiveData(payload.context); payload.file = util.removeSensitiveData(payload.file);