summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArthur Schiwon <blizzz@arthur-schiwon.de>2019-07-26 13:31:14 +0200
committerArthur Schiwon <blizzz@arthur-schiwon.de>2019-07-26 13:31:14 +0200
commit78201bcb729567915b772d0259d992adb2be1991 (patch)
tree45264b3fbef42e7ad16e1058a0aa01929939a238
parent323f40a49374af02feca7d21da986b36a7d559e2 (diff)
downloadnextcloud-server-78201bcb729567915b772d0259d992adb2be1991.tar.gz
nextcloud-server-78201bcb729567915b772d0259d992adb2be1991.zip
treat sensitive config keys by pattern
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
-rw-r--r--lib/private/AppConfig.php9
-rw-r--r--tests/lib/AppConfigTest.php2
2 files changed, 7 insertions, 4 deletions
diff --git a/lib/private/AppConfig.php b/lib/private/AppConfig.php
index 6d24ca5fa8e..8e921dbb7cf 100644
--- a/lib/private/AppConfig.php
+++ b/lib/private/AppConfig.php
@@ -44,10 +44,10 @@ class AppConfig implements IAppConfig {
/** @var array[] */
protected $sensitiveValues = [
'spreed' => [
- 'turn_server_secret',
+ '/^turn_server_secret$/',
],
'user_ldap' => [
- 'ldap_agent_password',
+ '/^(s..)?ldap_agent_password$/',
],
];
@@ -289,8 +289,9 @@ class AppConfig implements IAppConfig {
$values = $this->getValues($app, false);
if (isset($this->sensitiveValues[$app])) {
- foreach ($this->sensitiveValues[$app] as $sensitiveKey) {
- if (isset($values[$sensitiveKey])) {
+ foreach ($this->sensitiveValues[$app] as $sensitiveKeyExp) {
+ $sensitiveKeys = preg_grep($sensitiveKeyExp, array_keys($values));
+ foreach ($sensitiveKeys as $sensitiveKey) {
$values[$sensitiveKey] = IConfig::SENSITIVE_VALUE;
}
}
diff --git a/tests/lib/AppConfigTest.php b/tests/lib/AppConfigTest.php
index fed929352d3..9456fe4c232 100644
--- a/tests/lib/AppConfigTest.php
+++ b/tests/lib/AppConfigTest.php
@@ -318,12 +318,14 @@ class AppConfigTest extends TestCase {
->with('user_ldap', false)
->willReturn([
'ldap_agent_password' => 'secret',
+ 's42ldap_agent_password' => 'secret',
'ldap_dn' => 'dn',
]);
$values = $config->getFilteredValues('user_ldap');
$this->assertEquals([
'ldap_agent_password' => IConfig::SENSITIVE_VALUE,
+ 's42ldap_agent_password' => IConfig::SENSITIVE_VALUE,
'ldap_dn' => 'dn',
], $values);
}