Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nextcloud/server.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArthur Schiwon <blizzz@arthur-schiwon.de>2019-05-07 01:19:48 +0300
committerArthur Schiwon <blizzz@arthur-schiwon.de>2019-05-09 12:25:54 +0300
commit04bb1510fda52f33b5c8f0cb9a3b4065418f8ef3 (patch)
tree670970d0228df102792f5ce58a23522e126df6de /lib/private
parentb5e4b774fac8ab8af945149e1a3080fe0681ab97 (diff)
remove args from logging of common-spelled methods dependent on class
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
Diffstat (limited to 'lib/private')
-rw-r--r--lib/private/Log/ExceptionSerializer.php34
1 files changed, 24 insertions, 10 deletions
diff --git a/lib/private/Log/ExceptionSerializer.php b/lib/private/Log/ExceptionSerializer.php
index 499bb4101e9..b9932cfa05c 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 = [
@@ -76,24 +78,36 @@ class ExceptionSerializer {
// files_external: UserStoragesController
'update',
+ ];
- // Setup
- 'install',
-
- // SetupController
- 'run',
- 'display',
- 'loadAutoConfig',
+ 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 (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;