1
0
mirror of https://github.com/bitwarden/browser synced 2025-12-10 05:13:29 +00:00

Redact SignalR token from logs (#15402)

This commit is contained in:
Daniel García
2025-07-01 22:02:57 +02:00
committed by GitHub
parent 172623e050
commit 586d91e816

View File

@@ -31,22 +31,35 @@ export type TimeoutManager = {
class SignalRLogger implements ILogger { class SignalRLogger implements ILogger {
constructor(private readonly logService: LogService) {} constructor(private readonly logService: LogService) {}
redactMessage(message: string): string {
const ACCESS_TOKEN_TEXT = "access_token=";
// Redact the access token from the logs if it exists.
const accessTokenIndex = message.indexOf(ACCESS_TOKEN_TEXT);
if (accessTokenIndex !== -1) {
return message.substring(0, accessTokenIndex + ACCESS_TOKEN_TEXT.length) + "[REDACTED]";
}
return message;
}
log(logLevel: LogLevel, message: string): void { log(logLevel: LogLevel, message: string): void {
const redactedMessage = `[SignalR] ${this.redactMessage(message)}`;
switch (logLevel) { switch (logLevel) {
case LogLevel.Critical: case LogLevel.Critical:
this.logService.error(message); this.logService.error(redactedMessage);
break; break;
case LogLevel.Error: case LogLevel.Error:
this.logService.error(message); this.logService.error(redactedMessage);
break; break;
case LogLevel.Warning: case LogLevel.Warning:
this.logService.warning(message); this.logService.warning(redactedMessage);
break; break;
case LogLevel.Information: case LogLevel.Information:
this.logService.info(message); this.logService.info(redactedMessage);
break; break;
case LogLevel.Debug: case LogLevel.Debug:
this.logService.debug(message); this.logService.debug(redactedMessage);
break; break;
} }
} }