sanitizeDataForLogging static method
Sanitiza dados sensíveis para logging
data
Dados a serem sanitizados
Returns os dados sanitizados
Implementation
static Map<String, dynamic> sanitizeDataForLogging(
Map<String, dynamic> data) {
final sanitized = Map<String, dynamic>.from(data);
// Lista de campos sensíveis que devem ser mascarados
const sensitiveFields = [
'password',
'token',
'secret',
'key',
'authorization',
'credential',
'auth',
];
void sanitizeRecursive(Map<String, dynamic> map) {
map.forEach((key, value) {
final lowerKey = key.toLowerCase();
if (sensitiveFields.any((field) => lowerKey.contains(field))) {
map[key] = '***MASKED***';
} else if (value is Map<String, dynamic>) {
sanitizeRecursive(value);
} else if (value is List) {
for (int i = 0; i < value.length; i++) {
if (value[i] is Map<String, dynamic>) {
sanitizeRecursive(value[i]);
}
}
}
});
}
sanitizeRecursive(sanitized);
return sanitized;
}