@@ -146,6 +146,9 @@ private function getConnection()
146146 $ dbDatabase = $ this ->request ->getParam ("db-database " );
147147 $ dbUsername = $ this ->request ->getParam ("db-username " );
148148 $ dbPassword = $ this ->request ->getParam ("db-password " );
149+ $ dbSSL_ca = $ this ->request ->getParam ("db-ssl_ca " );
150+ $ dbSSL_cert = $ this ->request ->getParam ("db-ssl_cert " );
151+ $ dbSSL_key = $ this ->request ->getParam ("db-ssl_key " );
149152
150153 if (empty ($ dbDriver )) {
151154 throw new DatabaseException ("No database driver specified. " );
@@ -160,9 +163,19 @@ private function getConnection()
160163 "password " => $ dbPassword ,
161164 "user " => $ dbUsername ,
162165 "dbname " => $ dbDatabase ,
163- "tablePrefix " => ""
166+ "tablePrefix " => "" ,
167+ "driverOptions " => array ()
164168 ];
165169
170+ if ($ dbDriver == 'mysql ' ) {
171+ if ($ dbSSL_ca )
172+ $ parameters ["driverOptions " ][\PDO ::MYSQL_ATTR_SSL_CA ] = \OC ::$ SERVERROOT .'/ ' .$ dbSSL_ca ;
173+ if ($ dbSSL_cert )
174+ $ parameters ["driverOptions " ][\PDO ::MYSQL_ATTR_SSL_CERT ] = \OC ::$ SERVERROOT .'/ ' .$ dbSSL_cert ;
175+ if ($ dbSSL_key )
176+ $ parameters ["driverOptions " ][\PDO ::MYSQL_ATTR_SSL_KEY ] = \OC ::$ SERVERROOT .'/ ' .$ dbSSL_key ;
177+ }
178+
166179 $ connection = $ connectionFactory ->getConnection ($ dbDriver , $ parameters );
167180 $ connection ->executeQuery ("SELECT 'user_sql' " );
168181
@@ -216,6 +229,9 @@ public function saveProperties()
216229 unset($ this ->properties [DB ::PASSWORD ]);
217230 unset($ this ->properties [DB ::USERNAME ]);
218231 unset($ this ->properties [DB ::DATABASE ]);
232+ unset($ this ->properties [DB ::SSL_CA ]);
233+ unset($ this ->properties [DB ::SSL_CERT ]);
234+ unset($ this ->properties [DB ::SSL_KEY ]);
219235 $ this ->properties [Opt::SAFE_STORE ] = $ safeStore ;
220236 }
221237
0 commit comments