Passed
Push — master ( 32ded8...3c62d2 )
by Morris
15:08 queued 11s
created
lib/private/Log/ExceptionSerializer.php 1 patch
Indentation   +155 added lines, -155 removed lines patch added patch discarded remove patch
@@ -34,159 +34,159 @@
 block discarded – undo
34 34
 use OC\Setup;
35 35
 
36 36
 class ExceptionSerializer {
37
-	public const methodsWithSensitiveParameters = [
38
-		// Session/User
39
-		'completeLogin',
40
-		'login',
41
-		'checkPassword',
42
-		'checkPasswordNoLogging',
43
-		'loginWithPassword',
44
-		'updatePrivateKeyPassword',
45
-		'validateUserPass',
46
-		'loginWithToken',
47
-		'{closure}',
48
-		'createSessionToken',
49
-
50
-		// Provisioning
51
-		'addUser',
52
-
53
-		// TokenProvider
54
-		'getToken',
55
-		'isTokenPassword',
56
-		'getPassword',
57
-		'decryptPassword',
58
-		'logClientIn',
59
-		'generateToken',
60
-		'validateToken',
61
-
62
-		// TwoFactorAuth
63
-		'solveChallenge',
64
-		'verifyChallenge',
65
-
66
-		// ICrypto
67
-		'calculateHMAC',
68
-		'encrypt',
69
-		'decrypt',
70
-
71
-		// LoginController
72
-		'tryLogin',
73
-		'confirmPassword',
74
-
75
-		// LDAP
76
-		'bind',
77
-		'areCredentialsValid',
78
-		'invokeLDAPMethod',
79
-
80
-		// Encryption
81
-		'storeKeyPair',
82
-		'setupUser',
83
-
84
-		// files_external: OCA\Files_External\MountConfig
85
-		'getBackendStatus',
86
-
87
-		// files_external: UserStoragesController
88
-		'update',
89
-
90
-		// Preview providers, don't log big data strings
91
-		'imagecreatefromstring',
92
-	];
93
-
94
-	public const methodsWithSensitiveParametersByClass = [
95
-		SetupController::class => [
96
-			'run',
97
-			'display',
98
-			'loadAutoConfig',
99
-		],
100
-		Setup::class => [
101
-			'install'
102
-		],
103
-		Key::class => [
104
-			'__construct'
105
-		],
106
-	];
107
-
108
-	private function editTrace(array &$sensitiveValues, array $traceLine): array {
109
-		if (isset($traceLine['args'])) {
110
-			$sensitiveValues = array_merge($sensitiveValues, $traceLine['args']);
111
-		}
112
-		$traceLine['args'] = ['*** sensitive parameters replaced ***'];
113
-		return $traceLine;
114
-	}
115
-
116
-	private function filterTrace(array $trace) {
117
-		$sensitiveValues = [];
118
-		$trace = array_map(function (array $traceLine) use (&$sensitiveValues) {
119
-			$className = $traceLine['class'] ?? '';
120
-			if ($className && isset(self::methodsWithSensitiveParametersByClass[$className])
121
-				&& in_array($traceLine['function'], self::methodsWithSensitiveParametersByClass[$className], true)) {
122
-				return $this->editTrace($sensitiveValues, $traceLine);
123
-			}
124
-			foreach (self::methodsWithSensitiveParameters as $sensitiveMethod) {
125
-				if (strpos($traceLine['function'], $sensitiveMethod) !== false) {
126
-					return $this->editTrace($sensitiveValues, $traceLine);
127
-				}
128
-			}
129
-			return $traceLine;
130
-		}, $trace);
131
-		return array_map(function (array $traceLine) use ($sensitiveValues) {
132
-			if (isset($traceLine['args'])) {
133
-				$traceLine['args'] = $this->removeValuesFromArgs($traceLine['args'], $sensitiveValues);
134
-			}
135
-			return $traceLine;
136
-		}, $trace);
137
-	}
138
-
139
-	private function removeValuesFromArgs($args, $values) {
140
-		foreach ($args as &$arg) {
141
-			if (in_array($arg, $values, true)) {
142
-				$arg = '*** sensitive parameter replaced ***';
143
-			} elseif (is_array($arg)) {
144
-				$arg = $this->removeValuesFromArgs($arg, $values);
145
-			}
146
-		}
147
-		return $args;
148
-	}
149
-
150
-	private function encodeTrace($trace) {
151
-		$filteredTrace = $this->filterTrace($trace);
152
-		return array_map(function (array $line) {
153
-			if (isset($line['args'])) {
154
-				$line['args'] = array_map([$this, 'encodeArg'], $line['args']);
155
-			}
156
-			return $line;
157
-		}, $filteredTrace);
158
-	}
159
-
160
-	private function encodeArg($arg) {
161
-		if (is_object($arg)) {
162
-			$data = get_object_vars($arg);
163
-			$data['__class__'] = get_class($arg);
164
-			return array_map([$this, 'encodeArg'], $data);
165
-		} elseif (is_array($arg)) {
166
-			return array_map([$this, 'encodeArg'], $arg);
167
-		} else {
168
-			return $arg;
169
-		}
170
-	}
171
-
172
-	public function serializeException(\Throwable $exception) {
173
-		$data = [
174
-			'Exception' => get_class($exception),
175
-			'Message' => $exception->getMessage(),
176
-			'Code' => $exception->getCode(),
177
-			'Trace' => $this->encodeTrace($exception->getTrace()),
178
-			'File' => $exception->getFile(),
179
-			'Line' => $exception->getLine(),
180
-		];
181
-
182
-		if ($exception instanceof HintException) {
183
-			$data['Hint'] = $exception->getHint();
184
-		}
185
-
186
-		if ($exception->getPrevious()) {
187
-			$data['Previous'] = $this->serializeException($exception->getPrevious());
188
-		}
189
-
190
-		return $data;
191
-	}
37
+    public const methodsWithSensitiveParameters = [
38
+        // Session/User
39
+        'completeLogin',
40
+        'login',
41
+        'checkPassword',
42
+        'checkPasswordNoLogging',
43
+        'loginWithPassword',
44
+        'updatePrivateKeyPassword',
45
+        'validateUserPass',
46
+        'loginWithToken',
47
+        '{closure}',
48
+        'createSessionToken',
49
+
50
+        // Provisioning
51
+        'addUser',
52
+
53
+        // TokenProvider
54
+        'getToken',
55
+        'isTokenPassword',
56
+        'getPassword',
57
+        'decryptPassword',
58
+        'logClientIn',
59
+        'generateToken',
60
+        'validateToken',
61
+
62
+        // TwoFactorAuth
63
+        'solveChallenge',
64
+        'verifyChallenge',
65
+
66
+        // ICrypto
67
+        'calculateHMAC',
68
+        'encrypt',
69
+        'decrypt',
70
+
71
+        // LoginController
72
+        'tryLogin',
73
+        'confirmPassword',
74
+
75
+        // LDAP
76
+        'bind',
77
+        'areCredentialsValid',
78
+        'invokeLDAPMethod',
79
+
80
+        // Encryption
81
+        'storeKeyPair',
82
+        'setupUser',
83
+
84
+        // files_external: OCA\Files_External\MountConfig
85
+        'getBackendStatus',
86
+
87
+        // files_external: UserStoragesController
88
+        'update',
89
+
90
+        // Preview providers, don't log big data strings
91
+        'imagecreatefromstring',
92
+    ];
93
+
94
+    public const methodsWithSensitiveParametersByClass = [
95
+        SetupController::class => [
96
+            'run',
97
+            'display',
98
+            'loadAutoConfig',
99
+        ],
100
+        Setup::class => [
101
+            'install'
102
+        ],
103
+        Key::class => [
104
+            '__construct'
105
+        ],
106
+    ];
107
+
108
+    private function editTrace(array &$sensitiveValues, array $traceLine): array {
109
+        if (isset($traceLine['args'])) {
110
+            $sensitiveValues = array_merge($sensitiveValues, $traceLine['args']);
111
+        }
112
+        $traceLine['args'] = ['*** sensitive parameters replaced ***'];
113
+        return $traceLine;
114
+    }
115
+
116
+    private function filterTrace(array $trace) {
117
+        $sensitiveValues = [];
118
+        $trace = array_map(function (array $traceLine) use (&$sensitiveValues) {
119
+            $className = $traceLine['class'] ?? '';
120
+            if ($className && isset(self::methodsWithSensitiveParametersByClass[$className])
121
+                && in_array($traceLine['function'], self::methodsWithSensitiveParametersByClass[$className], true)) {
122
+                return $this->editTrace($sensitiveValues, $traceLine);
123
+            }
124
+            foreach (self::methodsWithSensitiveParameters as $sensitiveMethod) {
125
+                if (strpos($traceLine['function'], $sensitiveMethod) !== false) {
126
+                    return $this->editTrace($sensitiveValues, $traceLine);
127
+                }
128
+            }
129
+            return $traceLine;
130
+        }, $trace);
131
+        return array_map(function (array $traceLine) use ($sensitiveValues) {
132
+            if (isset($traceLine['args'])) {
133
+                $traceLine['args'] = $this->removeValuesFromArgs($traceLine['args'], $sensitiveValues);
134
+            }
135
+            return $traceLine;
136
+        }, $trace);
137
+    }
138
+
139
+    private function removeValuesFromArgs($args, $values) {
140
+        foreach ($args as &$arg) {
141
+            if (in_array($arg, $values, true)) {
142
+                $arg = '*** sensitive parameter replaced ***';
143
+            } elseif (is_array($arg)) {
144
+                $arg = $this->removeValuesFromArgs($arg, $values);
145
+            }
146
+        }
147
+        return $args;
148
+    }
149
+
150
+    private function encodeTrace($trace) {
151
+        $filteredTrace = $this->filterTrace($trace);
152
+        return array_map(function (array $line) {
153
+            if (isset($line['args'])) {
154
+                $line['args'] = array_map([$this, 'encodeArg'], $line['args']);
155
+            }
156
+            return $line;
157
+        }, $filteredTrace);
158
+    }
159
+
160
+    private function encodeArg($arg) {
161
+        if (is_object($arg)) {
162
+            $data = get_object_vars($arg);
163
+            $data['__class__'] = get_class($arg);
164
+            return array_map([$this, 'encodeArg'], $data);
165
+        } elseif (is_array($arg)) {
166
+            return array_map([$this, 'encodeArg'], $arg);
167
+        } else {
168
+            return $arg;
169
+        }
170
+    }
171
+
172
+    public function serializeException(\Throwable $exception) {
173
+        $data = [
174
+            'Exception' => get_class($exception),
175
+            'Message' => $exception->getMessage(),
176
+            'Code' => $exception->getCode(),
177
+            'Trace' => $this->encodeTrace($exception->getTrace()),
178
+            'File' => $exception->getFile(),
179
+            'Line' => $exception->getLine(),
180
+        ];
181
+
182
+        if ($exception instanceof HintException) {
183
+            $data['Hint'] = $exception->getHint();
184
+        }
185
+
186
+        if ($exception->getPrevious()) {
187
+            $data['Previous'] = $this->serializeException($exception->getPrevious());
188
+        }
189
+
190
+        return $data;
191
+    }
192 192
 }
Please login to merge, or discard this patch.