You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by ni...@apache.org on 2020/01/08 13:41:01 UTC

[hive] branch master updated: HIVE-22395: Ability to read druid metastore password from jceks (Nishant Bangarwa, reviewed by Ashutosh Chauhan)

This is an automated email from the ASF dual-hosted git repository.

nishant pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/hive.git


The following commit(s) were added to refs/heads/master by this push:
     new 948144a  HIVE-22395: Ability to read druid metastore password from jceks (Nishant Bangarwa, reviewed by Ashutosh Chauhan)
948144a is described below

commit 948144a49753d3955505f428d427fb7b2fb9642a
Author: Nishant Bangarwa <ni...@gmail.com>
AuthorDate: Wed Jan 8 19:03:49 2020 +0530

    HIVE-22395: Ability to read druid metastore password from jceks (Nishant Bangarwa, reviewed by Ashutosh Chauhan)
---
 .../org/apache/hadoop/hive/druid/DruidStorageHandler.java   | 13 ++++++++++++-
 1 file changed, 12 insertions(+), 1 deletion(-)

diff --git a/druid-handler/src/java/org/apache/hadoop/hive/druid/DruidStorageHandler.java b/druid-handler/src/java/org/apache/hadoop/hive/druid/DruidStorageHandler.java
index 287cf5f..fe55eff 100644
--- a/druid-handler/src/java/org/apache/hadoop/hive/druid/DruidStorageHandler.java
+++ b/druid-handler/src/java/org/apache/hadoop/hive/druid/DruidStorageHandler.java
@@ -831,6 +831,17 @@ import static org.apache.hadoop.hive.druid.DruidStorageHandlerUtils.JSON_MAPPER;
     return Suppliers.memoize(this::buildConnector).get();
   }
 
+  private static String getPassword(Configuration conf, HiveConf.ConfVars var) {
+    try {
+      final char[] password = conf.getPassword(var.varname);
+      return password == null ? null : String.valueOf(password);
+    } catch (IOException e) {
+      // Reading password from configuration for backwards compatibility.
+      LOG.warn("Unable to retrieve password from credential providers. Trying to read it from config..", e);
+      return conf.get(var.varname);
+    }
+  }
+
   private SQLMetadataConnector buildConnector() {
 
     if (connector != null) {
@@ -839,7 +850,7 @@ import static org.apache.hadoop.hive.druid.DruidStorageHandlerUtils.JSON_MAPPER;
 
     final String dbType = HiveConf.getVar(getConf(), HiveConf.ConfVars.DRUID_METADATA_DB_TYPE);
     final String username = HiveConf.getVar(getConf(), HiveConf.ConfVars.DRUID_METADATA_DB_USERNAME);
-    final String password = HiveConf.getVar(getConf(), HiveConf.ConfVars.DRUID_METADATA_DB_PASSWORD);
+    final String password = getPassword(getConf(), HiveConf.ConfVars.DRUID_METADATA_DB_PASSWORD);
     final String uri = HiveConf.getVar(getConf(), HiveConf.ConfVars.DRUID_METADATA_DB_URI);
     LOG.debug("Supplying SQL Connector with DB type {}, URI {}, User {}", dbType, uri, username);
     @SuppressWarnings("Guava") final Supplier<MetadataStorageConnectorConfig>