diff --git a/tests/e2e/utils/CheReporter.ts b/tests/e2e/utils/CheReporter.ts index 651af165285..6939e0e3d65 100644 --- a/tests/e2e/utils/CheReporter.ts +++ b/tests/e2e/utils/CheReporter.ts @@ -181,12 +181,44 @@ class CheReporter extends mocha.reporters.Spec { const networkLogsEntries: logging.Entry[] = await this.driverHelper.getDriver().manage().logs().get('performance'); const events: any[] = networkLogsEntries.map((entry): any[] => JSON.parse(entry.message).message); const har: any = chromeHar.harFromMessages(events, { includeTextFromResponseBody: true }); + this.redactHarContent(har); + const networkLogsStream: WriteStream = fs.createWriteStream(harFileName); networkLogsStream.write(Buffer.from(JSON.stringify(har)), (): void => { networkLogsStream.end(); }); }); } + + redactHarContent(har: any): void { + har.log?.entries?.forEach((entry: any): void => { + let text: string | undefined = entry.request?.postData?.text; + if (text) { + text = StringUtil.updateUrlQueryValue(text, 'csrf', ''); + text = StringUtil.updateUrlQueryValue(text, 'username', ''); + entry.request.postData.text = StringUtil.updateUrlQueryValue(text, 'password', ''); + } + + const cookies: any = entry.request?.cookies; + if (cookies) { + cookies.forEach((cookie: any): void => { + if (cookie.name?.startsWith('_oauth_proxy')) { + cookie.value = ''; + } + }); + } + + const headers: any = entry.request?.headers; + if (headers) { + headers.forEach((header: any): void => { + if (header.name?.toLowerCase() === 'cookie') { + header.value = StringUtil.updateCookieValue(header.value, '_oauth_proxy', ''); + header.value = StringUtil.updateCookieValue(header.value, '_oauth_proxy_csrf', ''); + } + }); + } + }); + } } export = CheReporter; diff --git a/tests/e2e/utils/StringUtil.ts b/tests/e2e/utils/StringUtil.ts index d8bd98a2c74..28f76d47591 100644 --- a/tests/e2e/utils/StringUtil.ts +++ b/tests/e2e/utils/StringUtil.ts @@ -59,4 +59,32 @@ export class StringUtil { return command.replace(/[{}]/g, '').replace(/(?