diff --git a/apps/user_ldap/lib/Configuration.php b/apps/user_ldap/lib/Configuration.php index b4a5b84720421..d2d2431e5ca50 100644 --- a/apps/user_ldap/lib/Configuration.php +++ b/apps/user_ldap/lib/Configuration.php @@ -234,7 +234,9 @@ public function setConfiguration(array $config, ?array &$applied = null): void { $setMethod = 'setValue'; switch ($key) { + case 'ldapAgentName': case 'ldapAgentPassword': + $val = \filter_var($val, FILTER_UNSAFE_RAW, FILTER_FLAG_STRIP_LOW); $setMethod = 'setRawValue'; break; case 'homeFolderNamingRule': diff --git a/apps/user_ldap/tests/ConfigurationTest.php b/apps/user_ldap/tests/ConfigurationTest.php index db92598fcfde3..41c609707b10d 100644 --- a/apps/user_ldap/tests/ConfigurationTest.php +++ b/apps/user_ldap/tests/ConfigurationTest.php @@ -54,6 +54,9 @@ public static function configurationDataProvider(): array { $password = ' such a passw0rd '; + $dnWithCrlf = "cn=admin\r\nset foo bar\r\n,dc=example,dc=org"; + $expectedDn = 'cn=adminset foo bar,dc=example,dc=org'; + return [ 'set general base' => ['ldapBase', $inputWithDN, $expectWithDN], 'set user base' => ['ldapBaseUsers', $inputWithDN, $expectWithDN], @@ -69,6 +72,7 @@ public static function configurationDataProvider(): array { 'set login filter attributes' => ['ldapLoginFilterAttributes', $inputNames, $expectedNames], 'set agent password' => ['ldapAgentPassword', $password, $password], + 'set agent name strips CRLF' => ['ldapAgentName', $dnWithCrlf, $expectedDn], 'set home folder, variant 1' => ['homeFolderNamingRule', $inputHomeFolder[0], $expectedHomeFolder[0]], 'set home folder, variant 2' => ['homeFolderNamingRule', $inputHomeFolder[1], $expectedHomeFolder[1]],