$expectedKeys = array('server', 'username', 'password', 'database');
sort($expectedKeys);
if ($keys !== $expectedKeys) {
- $e->addError('database', $dbField, sprintf("The database credentials for \"%s\" should be specified as (%s) not (%s)",
- $dbField,
- implode(',', $expectedKeys),
- implode(',', $keys)
- ));
- $errors++;
+ // if it failed it might be because of the optional ssl parameters
+ $expectedKeys[] = 'ssl_params';
+ sort($expectedKeys);
+ if ($keys !== $expectedKeys) {
+ $e->addError('database', $dbField, sprintf("The database credentials for \"%s\" should be specified as (%s) not (%s)",
+ $dbField,
+ implode(',', $expectedKeys),
+ implode(',', $keys)
+ ));
+ $errors++;
+ }
}
foreach ($db as $k => $v) {
if ($k === 'password' && empty($v)) {
$e->addWarning('database', "$dbField.$k", "The property \"$dbField.$k\" is blank. This may be correct in some controlled environments; it could also be a mistake or a symptom of an insecure configuration.");
}
- elseif (!is_scalar($v)) {
+ elseif ($k !== 'ssl_params' && !is_scalar($v)) {
$e->addError('database', "$dbField.$k", "The property \"$dbField.$k\" is not well-formed.");
$errors++;
}