HIVE-16930: HoS should verify the value of Kerberos principal and keytab file 
before adding them to spark-submit command parameters (Yibing Shi via Chaoyu 
Tang)


Project: http://git-wip-us.apache.org/repos/asf/hive/repo
Commit: http://git-wip-us.apache.org/repos/asf/hive/commit/aaa440f3
Tree: http://git-wip-us.apache.org/repos/asf/hive/tree/aaa440f3
Diff: http://git-wip-us.apache.org/repos/asf/hive/diff/aaa440f3

Branch: refs/heads/branch-2.3
Commit: aaa440f35fb47648fa7b412280f01e939a83cb61
Parents: cf64bb9
Author: Chaoyu Tang <ct...@cloudera.com>
Authored: Thu Jun 22 16:53:55 2017 -0400
Committer: Sahil Takiar <stak...@cloudera.com>
Committed: Tue Nov 7 08:15:47 2017 -0800

----------------------------------------------------------------------
 .../hive/spark/client/SparkClientImpl.java      | 35 +++++++++++---------
 1 file changed, 19 insertions(+), 16 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hive/blob/aaa440f3/spark-client/src/main/java/org/apache/hive/spark/client/SparkClientImpl.java
----------------------------------------------------------------------
diff --git 
a/spark-client/src/main/java/org/apache/hive/spark/client/SparkClientImpl.java 
b/spark-client/src/main/java/org/apache/hive/spark/client/SparkClientImpl.java
index d4b63f0..5c42bcc 100644
--- 
a/spark-client/src/main/java/org/apache/hive/spark/client/SparkClientImpl.java
+++ 
b/spark-client/src/main/java/org/apache/hive/spark/client/SparkClientImpl.java
@@ -54,6 +54,7 @@ import java.util.concurrent.Future;
 import java.util.concurrent.TimeoutException;
 import java.util.concurrent.atomic.AtomicInteger;
 
+import org.apache.commons.lang3.StringUtils;
 import org.apache.hadoop.hive.conf.Constants;
 import org.apache.hadoop.hive.conf.HiveConf;
 import org.apache.hadoop.hive.conf.HiveConf.ConfVars;
@@ -405,22 +406,24 @@ class SparkClientImpl implements SparkClient {
         String principal = 
SecurityUtil.getServerPrincipal(hiveConf.getVar(ConfVars.HIVE_SERVER2_KERBEROS_PRINCIPAL),
             "0.0.0.0");
         String keyTabFile = 
hiveConf.getVar(ConfVars.HIVE_SERVER2_KERBEROS_KEYTAB);
-        if (hiveConf.getBoolVar(HiveConf.ConfVars.HIVE_SERVER2_ENABLE_DOAS)) {
-          List<String> kinitArgv = Lists.newLinkedList();
-          kinitArgv.add("kinit");
-          kinitArgv.add(principal);
-          kinitArgv.add("-k");
-          kinitArgv.add("-t");
-          kinitArgv.add(keyTabFile + ";");
-          kinitArgv.addAll(argv);
-          argv = kinitArgv;
-        } else {
-          // if doAs is not enabled, we pass the principal/keypad to 
spark-submit in order to
-          // support the possible delegation token renewal in Spark
-          argv.add("--principal");
-          argv.add(principal);
-          argv.add("--keytab");
-          argv.add(keyTabFile);
+        if (StringUtils.isNotBlank(principal) && 
StringUtils.isNotBlank(keyTabFile)) {
+          if (hiveConf.getBoolVar(HiveConf.ConfVars.HIVE_SERVER2_ENABLE_DOAS)) 
{
+            List<String> kinitArgv = Lists.newLinkedList();
+            kinitArgv.add("kinit");
+            kinitArgv.add(principal);
+            kinitArgv.add("-k");
+            kinitArgv.add("-t");
+            kinitArgv.add(keyTabFile + ";");
+            kinitArgv.addAll(argv);
+            argv = kinitArgv;
+          } else {
+            // if doAs is not enabled, we pass the principal/keypad to 
spark-submit in order to
+            // support the possible delegation token renewal in Spark
+            argv.add("--principal");
+            argv.add(principal);
+            argv.add("--keytab");
+            argv.add(keyTabFile);
+          }
         }
       }
       if (hiveConf.getBoolVar(HiveConf.ConfVars.HIVE_SERVER2_ENABLE_DOAS)) {

Reply via email to