Introduce HiddenString for Config-Values

This commit is contained in:
Philipp Holzer 2019-06-10 14:43:25 +02:00
parent f5606fb211
commit 357d9b5108
No known key found for this signature in database
GPG key ID: D8365C3D36B77D90
6 changed files with 121 additions and 24 deletions

View file

@ -2,6 +2,8 @@
namespace Friendica\Core\Config\Cache;
use ParagonIE\HiddenString\HiddenString;
/**
* The Friendica config cache for the application
* Initial, all *.config.php files are loaded into this cache with the
@ -15,10 +17,17 @@ class ConfigCache implements IConfigCache, IPConfigCache
private $config;
/**
* @param array $config A initial config array
* @var bool
*/
public function __construct(array $config = [])
private $hidePasswordOutput;
/**
* @param array $config A initial config array
* @param bool $hidePasswordOutput True, if cache variables should take extra care of password values
*/
public function __construct(array $config = [], $hidePasswordOutput = true)
{
$this->hidePasswordOutput = $hidePasswordOutput;
$this->load($config);
}
@ -84,8 +93,12 @@ class ConfigCache implements IConfigCache, IPConfigCache
$this->config[$cat] = [];
}
$this->config[$cat][$key] = $value;
if ($this->hidePasswordOutput &&
$key == 'password') {
$this->config[$cat][$key] = new HiddenString($value);
} else {
$this->config[$cat][$key] = $value;
}
return true;
}

View file

@ -88,7 +88,7 @@ class Configuration
if (isset($dbvalue)) {
$this->configCache->set($cat, $key, $dbvalue);
return $dbvalue;
unset($dbvalue);
}
}