Skip to content
Snippets Groups Projects
Unverified Commit a2ad5d02 authored by Morris Jobke's avatar Morris Jobke Committed by GitHub
Browse files

Merge pull request #15308 from nextcloud/fix/13550/logging

remove setup args from logging
parents ddff722a a79da346
No related branches found
No related tags found
No related merge requests found
...@@ -21,7 +21,9 @@ ...@@ -21,7 +21,9 @@
namespace OC\Log; namespace OC\Log;
use OC\Core\Controller\SetupController;
use OC\HintException; use OC\HintException;
use OC\Setup;
class ExceptionSerializer { class ExceptionSerializer {
const methodsWithSensitiveParameters = [ const methodsWithSensitiveParameters = [
...@@ -78,14 +80,34 @@ class ExceptionSerializer { ...@@ -78,14 +80,34 @@ class ExceptionSerializer {
'update', '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) { private function filterTrace(array $trace) {
$sensitiveValues = []; $sensitiveValues = [];
$trace = array_map(function (array $traceLine) use (&$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) { foreach (self::methodsWithSensitiveParameters as $sensitiveMethod) {
if (strpos($traceLine['function'], $sensitiveMethod) !== false) { if (strpos($traceLine['function'], $sensitiveMethod) !== false) {
$sensitiveValues = array_merge($sensitiveValues, $traceLine['args']); return $this->editTrace($sensitiveValues, $traceLine);
$traceLine['args'] = ['*** sensitive parameters replaced ***'];
return $traceLine;
} }
} }
return $traceLine; return $traceLine;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment