From 788f808d4e7fa3c55f0dcd8d35f9ec7d4d983fbd Mon Sep 17 00:00:00 2001 From: Armand <4831c0@proton.me> Date: Sat, 13 Sep 2025 11:01:05 +0200 Subject: [PATCH] logger: censor sensitive information --- firka/lib/main.dart | 25 +++++++++++++++++-------- 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/firka/lib/main.dart b/firka/lib/main.dart index a5ab8f9..1029108 100644 --- a/firka/lib/main.dart +++ b/firka/lib/main.dart @@ -178,8 +178,9 @@ Future _initData(AppInitialization init) async { final i = (init.settings.group("profile_settings")["e_kreta_account_picker"] as SettingsKretenAccountPicker) .accountIndex; - init.client = KretaClient( - (await init.isar.tokenModels.where().findAll())[i], init.isar); + final token = (await init.isar.tokenModels.where().findAll())[i]; + logger.fine("Initializing kréta client as: ${token.studentId}"); + init.client = KretaClient(token, init.isar); await WidgetCacheHelper.updateWidgetCache(appStyle, init.client); } @@ -200,9 +201,7 @@ Future initializeApp() async { final isar = await initDB(); final tokens = await isar.tokenModels.where().findAll(); - if (kDebugMode) { - logger.finest('Token count: ${tokens.length}'); - } + logger.finest('Token count: ${tokens.length}'); var devInfoFetched = false; var devInfo = DeviceInfo("SM-A705FN", "11", "30"); @@ -253,9 +252,19 @@ void main() async { hierarchicalLoggingEnabled = true; logger.level = Level.ALL; - logger.onRecord.listen((record) { - debugPrint('[Firka] [${record.level.name}] ${record.message}'); - }); + { + final jwtPattern = + RegExp(r'([A-Za-z0-9-_]+)\.([A-Za-z0-9-_]+)\.([A-Za-z0-9-_]+)'); + final omPattern = RegExp(r'(\d{3})(\d{6})([A-Za-z0-9]?)'); + final refreshTokenPattern = RegExp(r'"([A-Z0-9-]+)"'); + + logger.onRecord.listen((record) { + debugPrint( + '[Firka] [${record.level.name}] ${record.message.replaceAll(jwtPattern, "***").replaceAll(refreshTokenPattern, "\"***\"").replaceAllMapped(omPattern, (match) { + return "${match.group(1)}******${match.group(3)}"; + })}'); + }); + } runZonedGuarded(() async { logger.finest("Initializing app");