Add option to disable Mysql SSL server verification

This commit is contained in:
Frédéric Guillot
2018-01-11 14:01:32 -08:00
parent f7c6cbd0f4
commit d35d5beee2
10 changed files with 141 additions and 111 deletions

View File

@@ -98,6 +98,14 @@ class Mysql extends Base
$options[PDO::MYSQL_ATTR_SSL_CA] = $settings['ssl_ca'];
}
if (! empty($settings['persistent'])) {
$options[PDO::ATTR_PERSISTENT] = $settings['persistent'];
}
if (isset($settings['verify_server_cert'])) {
$options[PDO::MYSQL_ATTR_SSL_VERIFY_SERVER_CERT] = $settings['verify_server_cert'];
}
return $options;
}

View File

@@ -20,9 +20,6 @@ class Postgres extends Base
* @var array
*/
protected $requiredAttributes = array(
'hostname',
'username',
'password',
'database',
);
@@ -42,13 +39,25 @@ class Postgres extends Base
*/
public function createConnection(array $settings)
{
$dsn = 'pgsql:host='.$settings['hostname'].';dbname='.$settings['database'];
$dsn = 'pgsql:dbname='.$settings['database'];
if (! empty($settings['username'])) {
$dsn .= ';user='.$settings['username'];
}
if (! empty($settings['password'])) {
$dsn .= ';password='.$settings['password'];
}
if (! empty($settings['hostname'])) {
$dsn .= ';host='.$settings['hostname'];
}
if (! empty($settings['port'])) {
$dsn .= ';port='.$settings['port'];
}
$this->pdo = new PDO($dsn, $settings['username'], $settings['password']);
$this->pdo = new PDO($dsn);
if (isset($settings['schema_table'])) {
$this->schemaTable = $settings['schema_table'];

View File

@@ -718,4 +718,12 @@ class Table
call_user_func_array(array($this->conditionBuilder, $name), $arguments);
return $this;
}
/**
* Clone function ensures that cloned objects are really clones
*/
public function __clone()
{
$this->conditionBuilder = clone $this->conditionBuilder;
}
}