lib/common/sanitizer.js
// Copyright 2015, EMC, Inc.
'use strict';
module.exports = SanitizerFactory;
SanitizerFactory.$provide = 'Sanitizer';
SanitizerFactory.$inject = [
'Services.Encryption',
'Constants',
'Util',
'_'
];
function SanitizerFactory (
encryption,
Constants,
util,
_
) {
var secretsPattern = _.reduce(Constants.Logging.Redactions, function(pattern, regex) {
return pattern ? util.format('%s|(?:%s)', pattern, regex.source) :
util.format('(?:%s)', regex.source);
}, '');
var secretsRegex = new RegExp(secretsPattern, 'i');
function sanitizer (obj) {
_.forOwn(obj, function(value, key) {
if (typeof(value) === 'object') {
sanitizer(value);
} else if ( key.match( secretsRegex )) {
obj[key] = 'REDACTED';
}
});
}
return {
scrub: sanitizer,
}
}