Merge pull request #7672 from nextcloud/backport/6977/log-censor

[stable12] Added additional methods for removal of sensitive info
This commit is contained in:
Roeland Jago Douma 2018-01-03 12:54:56 +01:00 committed by GitHub
commit f9490505ad
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 32 additions and 0 deletions

View File

@ -69,6 +69,8 @@ class Log implements ILogger {
'loginWithPassword',
'updatePrivateKeyPassword',
'validateUserPass',
'loginWithToken',
'\{closure\}',
// TokenProvider
'getToken',
@ -96,6 +98,10 @@ class Log implements ILogger {
'bind',
'areCredentialsValid',
'invokeLDAPMethod',
// Encryption
'storeKeyPair',
'setupUser',
];
/**

View File

@ -138,6 +138,32 @@ class LoggerTest extends TestCase {
}
}
/**
* @dataProvider userAndPasswordData
*/
public function testDetectclosure($user, $password) {
$a = function($user, $password) {
throw new \Exception('test');
};
try {
$a($user, $password);
} catch (\Exception $e) {
$this->logger->logException($e);
}
$logLines = $this->getLogs();
foreach($logLines as $logLine) {
$log = explode('\n', $logLine);
unset($log[1]); // Remove `testDetectclosure(` because we are not testing this here, but the closure on stack trace 0
$logLine = implode('\n', $log);
$this->assertNotContains($user, $logLine);
$this->assertNotContains($password, $logLine);
$this->assertContains('{closure}(*** sensitive parameters replaced ***)', $logLine);
}
}
public function dataGetLogClass() {
return [
['file', \OC\Log\File::class],