Bugfixing wrong typed password setting

This commit is contained in:
Philipp Holzer 2019-06-10 15:46:34 +02:00
parent 4666b18e5b
commit 50d8dbb123
No known key found for this signature in database
GPG key ID: D8365C3D36B77D90
2 changed files with 28 additions and 5 deletions

View file

@ -95,8 +95,8 @@ class ConfigCache implements IConfigCache, IPConfigCache
if ($this->hidePasswordOutput &&
$key == 'password' &&
!empty($value)) {
$this->config[$cat][$key] = new HiddenString($value);
!empty($value) && is_string($value)) {
$this->config[$cat][$key] = new HiddenString((string) $value);
} else {
$this->config[$cat][$key] = $value;
}

View file

@ -315,14 +315,37 @@ class ConfigCacheTest extends MockedTest
*/
public function testEmptyPassword()
{
$confiCache = new ConfigCache([
$configCache = new ConfigCache([
'database' => [
'password' => '',
'username' => '',
]
]);
$this->assertEmpty($confiCache->get('database', 'password'));
$this->assertEmpty($confiCache->get('database', 'username'));
$this->assertEmpty($configCache->get('database', 'password'));
$this->assertEmpty($configCache->get('database', 'username'));
}
public function testWrongTypePassword()
{
$configCache = new ConfigCache([
'database' => [
'password' => new \stdClass(),
'username' => '',
]
]);
$this->assertNotEmpty($configCache->get('database', 'password'));
$this->assertEmpty($configCache->get('database', 'username'));
$configCache = new ConfigCache([
'database' => [
'password' => 23,
'username' => '',
]
]);
$this->assertEquals(23, $configCache->get('database', 'password'));
$this->assertEmpty($configCache->get('database', 'username'));
}
}