Skip to content

Commit f4459ec

Browse files
committed
Mask sensitive information when logging
1 parent 1854928 commit f4459ec

File tree

2 files changed

+39
-1
lines changed

2 files changed

+39
-1
lines changed

spec/FileLoggerAdapter.spec.js

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,28 @@ describe('info logs', () => {
2121
});
2222
});
2323
});
24+
25+
it("Can mask sensitive information", (done) => {
26+
let customConfig = Object.assign({}, defaultConfiguration, {verbose: true});
27+
setServerConfiguration(customConfig);
28+
createTestUser().then(() => {
29+
let fileLoggerAdapter = new FileLoggerAdapter();
30+
fileLoggerAdapter.query({
31+
from: new Date(Date.now() - 500),
32+
size: 100,
33+
level: 'verbose'
34+
}, (results) => {
35+
if(results.length == 0) {
36+
fail('The adapter should return non-empty results');
37+
done();
38+
} else {
39+
expect(results[1].message.includes('"password": "******"')).toEqual(true);
40+
done();
41+
}
42+
});
43+
});
44+
});
45+
2446
});
2547

2648
describe('error logs', () => {

src/logger.js

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,12 @@ export function configureLogger({logsFolder, level = winston.level}) {
5050
currentLogsFolder = logsFolder;
5151

5252
logger.configure({
53-
transports: generateTransports(level)
53+
transports: generateTransports(level),
54+
filters: [
55+
(level, msg, meta) => {
56+
return maskSensitiveInformation(msg);
57+
}
58+
]
5459
})
5560
}
5661

@@ -71,5 +76,16 @@ export function addGroup(groupName) {
7176
return winston.loggers.get(groupName);
7277
}
7378

79+
function maskSensitiveInformation(msg) {
80+
let match;
81+
if (match = msg.match(/("password": ".*")/)) {
82+
msg = msg.replace(match[1], '"password": "******"');
83+
}
84+
if (match = msg.match(/(password=.*)&?/)) {
85+
msg = msg.replace(match[1], 'password=******');
86+
}
87+
return msg;
88+
}
89+
7490
export { logger };
7591
export default logger;

0 commit comments

Comments
 (0)