diff options
author | Morris Jobke <hey@morrisjobke.de> | 2019-05-08 15:50:54 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-05-08 15:50:54 +0200 |
commit | a2ad5d021f0d31babe8271748c77561a2c1addb7 (patch) | |
tree | 7935789770f49a9c16bbd1a797d7a007919daa66 /lib | |
parent | ddff722aa48e487256ccc52c993dc3c15d371439 (diff) | |
parent | a79da346b6c20f65c397d586fe1e10f76b60c5d0 (diff) | |
download | nextcloud-server-a2ad5d021f0d31babe8271748c77561a2c1addb7.tar.gz nextcloud-server-a2ad5d021f0d31babe8271748c77561a2c1addb7.zip |
Merge pull request #15308 from nextcloud/fix/13550/logging
remove setup args from logging
Diffstat (limited to 'lib')
-rw-r--r-- | lib/private/Log/ExceptionSerializer.php | 28 |
1 files changed, 25 insertions, 3 deletions
diff --git a/lib/private/Log/ExceptionSerializer.php b/lib/private/Log/ExceptionSerializer.php index 8bebdf6d667..8cfdb57b225 100644 --- a/lib/private/Log/ExceptionSerializer.php +++ b/lib/private/Log/ExceptionSerializer.php @@ -21,7 +21,9 @@ namespace OC\Log; +use OC\Core\Controller\SetupController; use OC\HintException; +use OC\Setup; class ExceptionSerializer { const methodsWithSensitiveParameters = [ @@ -78,14 +80,34 @@ class ExceptionSerializer { 'update', ]; + const methodsWithSensitiveParametersByClass = [ + SetupController::class => [ + 'run', + 'display', + 'loadAutoConfig', + ], + Setup::class => [ + 'install' + ] + ]; + + private function editTrace(array &$sensitiveValues, array $traceLine): array { + $sensitiveValues = array_merge($sensitiveValues, $traceLine['args']); + $traceLine['args'] = ['*** sensitive parameters replaced ***']; + return $traceLine; + } + private function filterTrace(array $trace) { $sensitiveValues = []; $trace = array_map(function (array $traceLine) use (&$sensitiveValues) { + $className = $traceLine['class'] ?? ''; + if ($className && isset(self::methodsWithSensitiveParametersByClass[$className]) + && in_array($traceLine['function'], self::methodsWithSensitiveParametersByClass[$className], true)) { + return $this->editTrace($sensitiveValues, $traceLine); + } foreach (self::methodsWithSensitiveParameters as $sensitiveMethod) { if (strpos($traceLine['function'], $sensitiveMethod) !== false) { - $sensitiveValues = array_merge($sensitiveValues, $traceLine['args']); - $traceLine['args'] = ['*** sensitive parameters replaced ***']; - return $traceLine; + return $this->editTrace($sensitiveValues, $traceLine); } } return $traceLine; |