Skip to content
Snippets Groups Projects
Unverified Commit d6d16666 authored by Arthur Schiwon's avatar Arthur Schiwon
Browse files

remove args from logging of common-spelled methods dependent on class

parent 4ad8d0c0
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 = [
...@@ -76,24 +78,36 @@ class ExceptionSerializer { ...@@ -76,24 +78,36 @@ class ExceptionSerializer {
// files_external: UserStoragesController // files_external: UserStoragesController
'update', 'update',
];
// Setup const methodsWithSensitiveParametersByClass = [
'install', SetupController::class => [
'run',
// SetupController 'display',
'run', 'loadAutoConfig',
'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 (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