Skip to content

Commit 04bb151

Browse files
committed
remove args from logging of common-spelled methods dependent on class
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
1 parent b5e4b77 commit 04bb151

File tree

1 file changed

+24
-10
lines changed

1 file changed

+24
-10
lines changed

lib/private/Log/ExceptionSerializer.php

Lines changed: 24 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,9 @@
2121

2222
namespace OC\Log;
2323

24+
use OC\Core\Controller\SetupController;
2425
use OC\HintException;
26+
use OC\Setup;
2527

2628
class ExceptionSerializer {
2729
const methodsWithSensitiveParameters = [
@@ -76,24 +78,36 @@ class ExceptionSerializer {
7678

7779
// files_external: UserStoragesController
7880
'update',
81+
];
7982

80-
// Setup
81-
'install',
82-
83-
// SetupController
84-
'run',
85-
'display',
86-
'loadAutoConfig',
83+
const methodsWithSensitiveParametersByClass = [
84+
SetupController::class => [
85+
'run',
86+
'display',
87+
'loadAutoConfig',
88+
],
89+
Setup::class => [
90+
'install'
91+
]
8792
];
8893

94+
private function editTrace(array &$sensitiveValues, array $traceLine): array {
95+
$sensitiveValues = array_merge($sensitiveValues, $traceLine['args']);
96+
$traceLine['args'] = ['*** sensitive parameters replaced ***'];
97+
return $traceLine;
98+
}
99+
89100
private function filterTrace(array $trace) {
90101
$sensitiveValues = [];
91102
$trace = array_map(function (array $traceLine) use (&$sensitiveValues) {
103+
$className = $traceLine['class'];
104+
if (isset(self::methodsWithSensitiveParametersByClass[$className])
105+
&& in_array($traceLine['function'], self::methodsWithSensitiveParametersByClass[$className], true)) {
106+
return $this->editTrace($sensitiveValues, $traceLine);
107+
}
92108
foreach (self::methodsWithSensitiveParameters as $sensitiveMethod) {
93109
if (strpos($traceLine['function'], $sensitiveMethod) !== false) {
94-
$sensitiveValues = array_merge($sensitiveValues, $traceLine['args']);
95-
$traceLine['args'] = ['*** sensitive parameters replaced ***'];
96-
return $traceLine;
110+
return $this->editTrace($sensitiveValues, $traceLine);
97111
}
98112
}
99113
return $traceLine;

0 commit comments

Comments
 (0)