Author: schuch
Date: Fri Dec 15 21:01:11 2017
New Revision: 1818336

URL: http://svn.apache.org/viewvc?rev=1818336&view=rev
Log:
CONNECTORS-1476: TLS/SSL Support for MySQL/MariaDB Database Connections

Modified:
    manifoldcf/trunk/CHANGES.txt
    
manifoldcf/trunk/framework/core/src/main/java/org/apache/manifoldcf/core/database/DBInterfaceMySQL.java
    
manifoldcf/trunk/site/src/documentation/content/xdocs/en_US/how-to-build-and-deploy.xml
    
manifoldcf/trunk/site/src/documentation/content/xdocs/ja_JP/how-to-build-and-deploy.xml
    
manifoldcf/trunk/site/src/documentation/content/xdocs/zh_CN/how-to-build-and-deploy.xml

Modified: manifoldcf/trunk/CHANGES.txt
URL: 
http://svn.apache.org/viewvc/manifoldcf/trunk/CHANGES.txt?rev=1818336&r1=1818335&r2=1818336&view=diff
==============================================================================
--- manifoldcf/trunk/CHANGES.txt (original)
+++ manifoldcf/trunk/CHANGES.txt Fri Dec 15 21:01:11 2017
@@ -3,6 +3,8 @@ $Id$
 
 ======================= 2.10-dev =====================
 
+CONNECTORS-1476: TLS/SSL support for MySQL/MariaDB database connections
+(Markus Schuch)
 
 ======================= Release 2.9 =====================
 

Modified: 
manifoldcf/trunk/framework/core/src/main/java/org/apache/manifoldcf/core/database/DBInterfaceMySQL.java
URL: 
http://svn.apache.org/viewvc/manifoldcf/trunk/framework/core/src/main/java/org/apache/manifoldcf/core/database/DBInterfaceMySQL.java?rev=1818336&r1=1818335&r2=1818336&view=diff
==============================================================================
--- 
manifoldcf/trunk/framework/core/src/main/java/org/apache/manifoldcf/core/database/DBInterfaceMySQL.java
 (original)
+++ 
manifoldcf/trunk/framework/core/src/main/java/org/apache/manifoldcf/core/database/DBInterfaceMySQL.java
 Fri Dec 15 21:01:11 2017
@@ -31,7 +31,9 @@ public class DBInterfaceMySQL extends Da
   public static final String mysqlServerProperty = 
"org.apache.manifoldcf.mysql.server";
   /** Source system name or IP */
   public static final String mysqlClientProperty = 
"org.apache.manifoldcf.mysql.client";
-  
+  /** MySQL ssl property */
+  public static final String mysqlSslProperty = 
"org.apache.manifoldcf.mysql.ssl";
+
   private static final String _driver = "com.mysql.jdbc.Driver";
 
   /** A lock manager handle. */
@@ -77,9 +79,18 @@ public class DBInterfaceMySQL extends Da
     throws ManifoldCFException
   {
     String server =  LockManagerFactory.getProperty(tc,mysqlServerProperty);
+    final String ssl = LockManagerFactory.getProperty(tc,mysqlSslProperty);
+
     if (server == null || server.length() == 0)
       server = "localhost";
-    return 
"jdbc:mysql://"+server+"/"+theDatabaseName+"?useUnicode=true&characterEncoding=utf8";
+    
+    String jdbcUrl = 
"jdbc:mysql://"+server+"/"+theDatabaseName+"?useUnicode=true&characterEncoding=utf8";
 
+    
+    if (Boolean.parseBoolean(ssl)) {
+      jdbcUrl += "&useSSL=true&requireSSL=true";
+    }
+    
+    return jdbcUrl;
   }
 
   protected String getJdbcDriverClass()

Modified: 
manifoldcf/trunk/site/src/documentation/content/xdocs/en_US/how-to-build-and-deploy.xml
URL: 
http://svn.apache.org/viewvc/manifoldcf/trunk/site/src/documentation/content/xdocs/en_US/how-to-build-and-deploy.xml?rev=1818336&r1=1818335&r2=1818336&view=diff
==============================================================================
--- 
manifoldcf/trunk/site/src/documentation/content/xdocs/en_US/how-to-build-and-deploy.xml
 (original)
+++ 
manifoldcf/trunk/site/src/documentation/content/xdocs/en_US/how-to-build-and-deploy.xml
 Fri Dec 15 21:01:11 2017
@@ -1101,6 +1101,7 @@ start[.bat|.sh]
             
<tr><td>org.apache.manifoldcf.postgresql.ssl</td><td>No</td><td>Set to "true" 
for ssl communication with PostgreSQL.</td></tr>
             <tr><td>org.apache.manifoldcf.mysql.server</td><td>No</td><td>The 
MySQL or MariaDB server name.  Defaults to 'localhost'.</td></tr>
             <tr><td>org.apache.manifoldcf.mysql.client</td><td>No</td><td>The 
MySQL or MariaDB client property.  Defaults to 'localhost'.  You may want to 
set this to '%' for a multi-machine setup.</td></tr>
+            <tr><td>org.apache.manifoldcf.mysql.ssl</td><td>No</td><td>Set to 
"true" for ssl communication with MySQL or MariaDB.</td></tr>
             
<tr><td>org.apache.manifoldcf.hsqldbdatabasepath</td><td>No</td><td>Absolute or 
relative path to HSQLDB database; default is '.'.</td></tr>
             <tr><td>org.apache.manifoldcf.hsqldbdatabaseprotocol</td><td>Yes, 
for remote HSQLDB connection</td><td>The HSQLDB JDBC protocol; choices are 
'hsql', 'http', or 'https'. Default is blank (which means an embedded 
instance)</td></tr>
             <tr><td>org.apache.manifoldcf.hsqldbdatabaseserver</td><td>Yes, 
for remote HSQLDB connection</td><td>The HSQLDB remote server name.</td></tr>

Modified: 
manifoldcf/trunk/site/src/documentation/content/xdocs/ja_JP/how-to-build-and-deploy.xml
URL: 
http://svn.apache.org/viewvc/manifoldcf/trunk/site/src/documentation/content/xdocs/ja_JP/how-to-build-and-deploy.xml?rev=1818336&r1=1818335&r2=1818336&view=diff
==============================================================================
--- 
manifoldcf/trunk/site/src/documentation/content/xdocs/ja_JP/how-to-build-and-deploy.xml
 (original)
+++ 
manifoldcf/trunk/site/src/documentation/content/xdocs/ja_JP/how-to-build-and-deploy.xml
 Fri Dec 15 21:01:11 2017
@@ -1101,6 +1101,7 @@ start[.bat|.sh]
             
<tr><td>org.apache.manifoldcf.postgresql.ssl</td><td>No</td><td>Set to "true" 
for ssl communication with PostgreSQL.</td></tr>
             <tr><td>org.apache.manifoldcf.mysql.server</td><td>No</td><td>The 
MySQL or MariaDB server name.  Defaults to 'localhost'.</td></tr>
             <tr><td>org.apache.manifoldcf.mysql.client</td><td>No</td><td>The 
MySQL or MariaDB client property.  Defaults to 'localhost'.  You may want to 
set this to '%' for a multi-machine setup.</td></tr>
+            <tr><td>org.apache.manifoldcf.mysql.ssl</td><td>No</td><td>Set to 
"true" for ssl communication with MySQL or MariaDB.</td></tr>
             
<tr><td>org.apache.manifoldcf.hsqldbdatabasepath</td><td>No</td><td>Absolute or 
relative path to HSQLDB database; default is '.'.</td></tr>
             <tr><td>org.apache.manifoldcf.hsqldbdatabaseprotocol</td><td>Yes, 
for remote HSQLDB connection</td><td>The HSQLDB JDBC protocol; choices are 
'hsql', 'http', or 'https'. Default is blank (which means an embedded 
instance)</td></tr>
             <tr><td>org.apache.manifoldcf.hsqldbdatabaseserver</td><td>Yes, 
for remote HSQLDB connection</td><td>The HSQLDB remote server name.</td></tr>

Modified: 
manifoldcf/trunk/site/src/documentation/content/xdocs/zh_CN/how-to-build-and-deploy.xml
URL: 
http://svn.apache.org/viewvc/manifoldcf/trunk/site/src/documentation/content/xdocs/zh_CN/how-to-build-and-deploy.xml?rev=1818336&r1=1818335&r2=1818336&view=diff
==============================================================================
--- 
manifoldcf/trunk/site/src/documentation/content/xdocs/zh_CN/how-to-build-and-deploy.xml
 (original)
+++ 
manifoldcf/trunk/site/src/documentation/content/xdocs/zh_CN/how-to-build-and-deploy.xml
 Fri Dec 15 21:01:11 2017
@@ -1101,6 +1101,7 @@ start[.bat|.sh]
             
<tr><td>org.apache.manifoldcf.postgresql.ssl</td><td>No</td><td>Set to "true" 
for ssl communication with PostgreSQL.</td></tr>
             <tr><td>org.apache.manifoldcf.mysql.server</td><td>No</td><td>The 
MySQL or MariaDB server name.  Defaults to 'localhost'.</td></tr>
             <tr><td>org.apache.manifoldcf.mysql.client</td><td>No</td><td>The 
MySQL or MariaDB client property.  Defaults to 'localhost'.  You may want to 
set this to '%' for a multi-machine setup.</td></tr>
+            <tr><td>org.apache.manifoldcf.mysql.ssl</td><td>No</td><td>Set to 
"true" for ssl communication with MySQL or MariaDB.</td></tr>
             
<tr><td>org.apache.manifoldcf.hsqldbdatabasepath</td><td>No</td><td>Absolute or 
relative path to HSQLDB database; default is '.'.</td></tr>
             <tr><td>org.apache.manifoldcf.hsqldbdatabaseprotocol</td><td>Yes, 
for remote HSQLDB connection</td><td>The HSQLDB JDBC protocol; choices are 
'hsql', 'http', or 'https'. Default is blank (which means an embedded 
instance)</td></tr>
             <tr><td>org.apache.manifoldcf.hsqldbdatabaseserver</td><td>Yes, 
for remote HSQLDB connection</td><td>The HSQLDB remote server name.</td></tr>


Reply via email to