summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorMorris Jobke <hey@morrisjobke.de>2019-05-08 15:50:54 +0200
committerGitHub <noreply@github.com>2019-05-08 15:50:54 +0200
commita2ad5d021f0d31babe8271748c77561a2c1addb7 (patch)
tree7935789770f49a9c16bbd1a797d7a007919daa66 /lib
parentddff722aa48e487256ccc52c993dc3c15d371439 (diff)
parenta79da346b6c20f65c397d586fe1e10f76b60c5d0 (diff)
downloadnextcloud-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.php28
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;