Procházet zdrojové kódy

fix: avoid setting db ssl unless explicitly provided

Nick před 6 roky
rodič
revize
f7ebccbb43
2 změnil soubory, kde provedl 19 přidání a 2 odebrání
  1. 1 0
      server/app/data.yml
  2. 18 2
      server/core/db.js

+ 1 - 0
server/app/data.yml

@@ -14,6 +14,7 @@ defaults:
       user: wikijs
       user: wikijs
       pass: wikijsrocks
       pass: wikijsrocks
       db: wiki
       db: wiki
+      ssl: false
       storage: ./db.sqlite
       storage: ./db.sqlite
     ssl:
     ssl:
       enabled: false
       enabled: false

+ 18 - 2
server/core/db.js

@@ -29,18 +29,27 @@ module.exports = {
       user: WIKI.config.db.user,
       user: WIKI.config.db.user,
       password: WIKI.config.db.pass,
       password: WIKI.config.db.pass,
       database: WIKI.config.db.db,
       database: WIKI.config.db.db,
-      port: WIKI.config.db.port,
-      ssl: !_.isNil(WIKI.config.db.ssl) && WIKI.config.db.ssl !== false
+      port: WIKI.config.db.port
     }
     }
 
 
+    const dbUseSSL = (WIKI.config.db.ssl === true || WIKI.config.db.ssl === 'true' || WIKI.config.db.ssl === 1 || WIKI.config.db.ssl === '1')
+
     switch (WIKI.config.db.type) {
     switch (WIKI.config.db.type) {
       case 'postgres':
       case 'postgres':
         dbClient = 'pg'
         dbClient = 'pg'
+
+        if (dbUseSSL && _.isPlainObject(dbConfig)) {
+          dbConfig.ssl = true
+        }
         break
         break
       case 'mariadb':
       case 'mariadb':
       case 'mysql':
       case 'mysql':
         dbClient = 'mysql2'
         dbClient = 'mysql2'
 
 
+        if (dbUseSSL && _.isPlainObject(dbConfig)) {
+          dbConfig.ssl = true
+        }
+
         // Fix mysql boolean handling...
         // Fix mysql boolean handling...
         dbConfig.typeCast = (field, next) => {
         dbConfig.typeCast = (field, next) => {
           if (field.type === 'TINY' && field.length === 1) {
           if (field.type === 'TINY' && field.length === 1) {
@@ -52,6 +61,13 @@ module.exports = {
         break
         break
       case 'mssql':
       case 'mssql':
         dbClient = 'mssql'
         dbClient = 'mssql'
+
+        if (_.isPlainObject(dbConfig)) {
+          dbConfig.appName = 'Wiki.js'
+          if (dbUseSSL) {
+            dbConfig.encrypt = true
+          }
+        }
         break
         break
       case 'sqlite':
       case 'sqlite':
         dbClient = 'sqlite3'
         dbClient = 'sqlite3'