From 7472c6155f6b6ac95edb74e4e734c41c72ff5e8b Mon Sep 17 00:00:00 2001 From: Mai Trung Duc Date: Wed, 31 Mar 2021 23:04:04 +0800 Subject: [PATCH 1/2] add suport authentication for presto, allow https for presto --- server/drivers/presto/_presto.js | 5 ++++- server/drivers/presto/index.js | 8 +++++++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/server/drivers/presto/_presto.js b/server/drivers/presto/_presto.js index d865be75e..98c817ab2 100644 --- a/server/drivers/presto/_presto.js +++ b/server/drivers/presto/_presto.js @@ -10,7 +10,10 @@ function wait(ms) { // Get Presto headers from config function getHeaders(config) { - const headers = { 'X-Presto-User': config.user }; + const headers = { + 'X-Presto-User': config.user, + 'Authorization': 'Basic ' + Buffer.from(`${config.user}:${config.password}`).toString('base64') + }; if (config.catalog) { headers['X-Presto-Catalog'] = config.catalog; } diff --git a/server/drivers/presto/index.js b/server/drivers/presto/index.js index a1a6aa649..b48058dfc 100644 --- a/server/drivers/presto/index.js +++ b/server/drivers/presto/index.js @@ -35,8 +35,9 @@ function runQuery(query, connection) { const rows = []; const port = connection.port || 8080; const prestoConfig = { - url: `http://${connection.host}:${port}`, + url: `${connection.host}:${port}`, user: connection.username, + password: connection.password, catalog: connection.prestoCatalog, schema: connection.prestoSchema, }; @@ -100,6 +101,11 @@ const fields = [ formType: 'TEXT', label: 'Database Username', }, + { + key: 'password', + formType: 'PASSWORD', + label: 'Database Password', + }, { key: 'prestoCatalog', formType: 'TEXT', From f5a7ac80dae813f515d86bc6d52b7eafa5cfba28 Mon Sep 17 00:00:00 2001 From: Mai Trung Duc Date: Wed, 31 Mar 2021 23:21:23 +0800 Subject: [PATCH 2/2] fix linting issues --- server/drivers/presto/_presto.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/server/drivers/presto/_presto.js b/server/drivers/presto/_presto.js index 98c817ab2..edd5e48f4 100644 --- a/server/drivers/presto/_presto.js +++ b/server/drivers/presto/_presto.js @@ -12,7 +12,9 @@ function wait(ms) { function getHeaders(config) { const headers = { 'X-Presto-User': config.user, - 'Authorization': 'Basic ' + Buffer.from(`${config.user}:${config.password}`).toString('base64') + Authorization: + 'Basic ' + + Buffer.from(`${config.user}:${config.password}`).toString('base64'), }; if (config.catalog) { headers['X-Presto-Catalog'] = config.catalog;