From f7ebccbb43c83866d6dd42c0b550ff199485809d Mon Sep 17 00:00:00 2001 From: Nick Date: Tue, 4 Jun 2019 03:14:07 -0400 Subject: [PATCH] fix: avoid setting db ssl unless explicitly provided --- server/app/data.yml | 1 + server/core/db.js | 20 ++++++++++++++++++-- 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/server/app/data.yml b/server/app/data.yml index 05d21645..8b296c9c 100644 --- a/server/app/data.yml +++ b/server/app/data.yml @@ -14,6 +14,7 @@ defaults: user: wikijs pass: wikijsrocks db: wiki + ssl: false storage: ./db.sqlite ssl: enabled: false diff --git a/server/core/db.js b/server/core/db.js index 2b6fe413..ccbb3636 100644 --- a/server/core/db.js +++ b/server/core/db.js @@ -29,18 +29,27 @@ module.exports = { user: WIKI.config.db.user, password: WIKI.config.db.pass, 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) { case 'postgres': dbClient = 'pg' + + if (dbUseSSL && _.isPlainObject(dbConfig)) { + dbConfig.ssl = true + } break case 'mariadb': case 'mysql': dbClient = 'mysql2' + if (dbUseSSL && _.isPlainObject(dbConfig)) { + dbConfig.ssl = true + } + // Fix mysql boolean handling... dbConfig.typeCast = (field, next) => { if (field.type === 'TINY' && field.length === 1) { @@ -52,6 +61,13 @@ module.exports = { break case 'mssql': dbClient = 'mssql' + + if (_.isPlainObject(dbConfig)) { + dbConfig.appName = 'Wiki.js' + if (dbUseSSL) { + dbConfig.encrypt = true + } + } break case 'sqlite': dbClient = 'sqlite3'