Skip to content

Commit 96bd3ba

Browse files
committed
Revert "Refactored obfuscateBody() for performance to run single regex replacements on message body"
This reverts commit 062d175.
1 parent 062d175 commit 96bd3ba

File tree

2 files changed

+15
-19
lines changed

2 files changed

+15
-19
lines changed

CHANGELOG.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
## [v1.2.3 (2025-06-16)](https://github.com/onlime/laravel-http-client-global-logger/compare/v1.2.2...v1.2.3)
66

77
- [Security] Body key obfuscation (`obfuscate.body_keys` config) is now also applied to response body, both for JSON or form-styled content.
8-
- Refactored `obfuscateBody()` for performance to run single regex replacements on message body.
98

109
## [v1.2.2 (2025-06-16)](https://github.com/onlime/laravel-http-client-global-logger/compare/v1.2.1...v1.2.2)
1110

src/Traits/ObfuscatesBody.php

Lines changed: 15 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -16,24 +16,21 @@ protected function obfuscateBody(string $message): string
1616
{
1717
$replacement = config('http-client-global-logger.obfuscate.replacement');
1818

19-
// Build regex pattern for keys to obfuscate
20-
$keysPattern = implode('|', array_map(
21-
fn (string $key) => preg_quote($key, '/'),
22-
config('http-client-global-logger.obfuscate.body_keys')
23-
));
24-
25-
// JSON-style: "(key1|key2)": "someValue"
26-
$message = preg_replace(
27-
'/(?<="(?:' . $keysPattern . ')":")[^"]*(?=")/mU',
28-
$replacement,
29-
$message
30-
);
31-
// form-style: key1=someValue& or key2=someValue$
32-
$message = preg_replace(
33-
'/(?<=\b(?:'. $keysPattern .')=)[^&]*(?=&|$)/',
34-
$replacement,
35-
$message
36-
);
19+
foreach (config('http-client-global-logger.obfuscate.body_keys') as $key) {
20+
$quoted = preg_quote($key, '/');
21+
// JSON-style: "key":"value"
22+
$message = preg_replace(
23+
'/(?<="'.$quoted.'":")[^"]*(?=")/mU',
24+
$replacement,
25+
$message
26+
);
27+
// form-style: key=value (until & or end)
28+
$message = preg_replace(
29+
'/(?<=\b'. $quoted .'=)[^&]*(?=&|$)/',
30+
$replacement,
31+
$message
32+
);
33+
}
3734

3835
return $message;
3936
}

0 commit comments

Comments
 (0)