Skip to content

Commit

Permalink
All: Mask auth token and password in log
Browse files Browse the repository at this point in the history
  • Loading branch information
laurent22 committed Jun 17, 2021
1 parent 7f0b3fd commit 0d33955
Show file tree
Hide file tree
Showing 3 changed files with 20 additions and 8 deletions.
3 changes: 0 additions & 3 deletions .eslintignore
Original file line number Diff line number Diff line change
Expand Up @@ -1439,9 +1439,6 @@ packages/lib/services/synchronizer/synchronizer_MigrationHandler.test.js.map
packages/lib/services/synchronizer/tools.d.ts
packages/lib/services/synchronizer/tools.js
packages/lib/services/synchronizer/tools.js.map
packages/lib/services/synchronizer/uploadUtils.d.ts
packages/lib/services/synchronizer/uploadUtils.js
packages/lib/services/synchronizer/uploadUtils.js.map
packages/lib/services/synchronizer/utils/handleSyncStartupOperation.d.ts
packages/lib/services/synchronizer/utils/handleSyncStartupOperation.js
packages/lib/services/synchronizer/utils/handleSyncStartupOperation.js.map
Expand Down
3 changes: 0 additions & 3 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -1425,9 +1425,6 @@ packages/lib/services/synchronizer/synchronizer_MigrationHandler.test.js.map
packages/lib/services/synchronizer/tools.d.ts
packages/lib/services/synchronizer/tools.js
packages/lib/services/synchronizer/tools.js.map
packages/lib/services/synchronizer/uploadUtils.d.ts
packages/lib/services/synchronizer/uploadUtils.js
packages/lib/services/synchronizer/uploadUtils.js.map
packages/lib/services/synchronizer/utils/handleSyncStartupOperation.d.ts
packages/lib/services/synchronizer/utils/handleSyncStartupOperation.js
packages/lib/services/synchronizer/utils/handleSyncStartupOperation.js.map
Expand Down
22 changes: 20 additions & 2 deletions packages/lib/JoplinServerApi.ts
Original file line number Diff line number Diff line change
Expand Up @@ -91,6 +91,23 @@ export default class JoplinServerApi {
return _('Could not connect to Joplin Server. Please check the Synchronisation options in the config screen. Full error was:\n\n%s', msg);
}

private hidePassword(o: any): any {
if (typeof o === 'string') {
try {
const output = JSON.parse(o);
if (!output) return o;
if (output.password) output.password = '******';
return JSON.stringify(output);
} catch (error) {
return o;
}
} else {
const output = { ...o };
if (output.password) output.password = '******';
return output;
}
}

private requestToCurl_(url: string, options: any) {
const output = [];
output.push('curl');
Expand All @@ -99,11 +116,12 @@ export default class JoplinServerApi {
if (options.headers) {
for (const n in options.headers) {
if (!options.headers.hasOwnProperty(n)) continue;
output.push(`${'-H ' + '"'}${n}: ${options.headers[n]}"`);
const headerValue = n === 'X-API-AUTH' ? '******' : options.headers[n];
output.push(`${'-H ' + '"'}${n}: ${headerValue}"`);
}
}
if (options.body) {
const serialized = typeof options.body !== 'string' ? JSON.stringify(options.body) : options.body;
const serialized = typeof options.body !== 'string' ? JSON.stringify(this.hidePassword(options.body)) : this.hidePassword(options.body);
output.push(`${'--data ' + '\''}${serialized}'`);
}
output.push(`'${url}'`);
Expand Down

0 comments on commit 0d33955

Please sign in to comment.