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

zihaoxiang pushed a commit to branch dev
in repository https://gitbox.apache.org/repos/asf/dolphinscheduler.git


The following commit(s) were added to refs/heads/dev by this push:
     new b5e7398393 [Fix-17413][DataSource][Hive&Spark]Principal field is not 
displayed and not used correctly in kerberos env (#17493)
b5e7398393 is described below

commit b5e73983933f054d738ddb8d48d5818254bd369b
Author: njnu-seafish <[email protected]>
AuthorDate: Wed Sep 17 15:27:33 2025 +0800

    [Fix-17413][DataSource][Hive&Spark]Principal field is not displayed and not 
used correctly in kerberos env (#17493)
---
 .../datasource/hive/param/HiveDataSourceProcessor.java      | 13 ++++++++++---
 .../datasource/spark/param/SparkDataSourceProcessor.java    | 13 ++++++++++---
 2 files changed, 20 insertions(+), 6 deletions(-)

diff --git 
a/dolphinscheduler-datasource-plugin/dolphinscheduler-datasource-hive/src/main/java/org/apache/dolphinscheduler/plugin/datasource/hive/param/HiveDataSourceProcessor.java
 
b/dolphinscheduler-datasource-plugin/dolphinscheduler-datasource-hive/src/main/java/org/apache/dolphinscheduler/plugin/datasource/hive/param/HiveDataSourceProcessor.java
index d58f7efdb7..2838b9983e 100644
--- 
a/dolphinscheduler-datasource-plugin/dolphinscheduler-datasource-hive/src/main/java/org/apache/dolphinscheduler/plugin/datasource/hive/param/HiveDataSourceProcessor.java
+++ 
b/dolphinscheduler-datasource-plugin/dolphinscheduler-datasource-hive/src/main/java/org/apache/dolphinscheduler/plugin/datasource/hive/param/HiveDataSourceProcessor.java
@@ -30,6 +30,7 @@ import 
org.apache.dolphinscheduler.spi.datasource.ConnectionParam;
 import org.apache.dolphinscheduler.spi.enums.DbType;
 
 import org.apache.commons.collections4.MapUtils;
+import org.apache.commons.lang3.StringUtils;
 
 import java.io.IOException;
 import java.sql.Connection;
@@ -61,6 +62,7 @@ public class HiveDataSourceProcessor extends 
AbstractDataSourceProcessor {
         
hiveDataSourceParamDTO.setLoginUserKeytabUsername(hiveConnectionParam.getLoginUserKeytabUsername());
         
hiveDataSourceParamDTO.setLoginUserKeytabPath(hiveConnectionParam.getLoginUserKeytabPath());
         
hiveDataSourceParamDTO.setJavaSecurityKrb5Conf(hiveConnectionParam.getJavaSecurityKrb5Conf());
+        
hiveDataSourceParamDTO.setPrincipal(hiveConnectionParam.getPrincipal());
 
         String[] tmpArray = 
hiveConnectionParam.getAddress().split(Constants.DOUBLE_SLASH);
         StringBuilder hosts = new StringBuilder();
@@ -123,11 +125,16 @@ public class HiveDataSourceProcessor extends 
AbstractDataSourceProcessor {
     @Override
     public String getJdbcUrl(ConnectionParam connectionParam) {
         HiveConnectionParam hiveConnectionParam = (HiveConnectionParam) 
connectionParam;
-        String jdbcUrl = hiveConnectionParam.getJdbcUrl();
+
+        StringBuilder jdbcUrlBuilder = new 
StringBuilder(hiveConnectionParam.getJdbcUrl());
+        if (StringUtils.isNotBlank(hiveConnectionParam.getPrincipal())) {
+            
jdbcUrlBuilder.append(";principal=").append(hiveConnectionParam.getPrincipal());
+        }
         if (MapUtils.isNotEmpty(hiveConnectionParam.getOther())) {
-            return jdbcUrl + ";" + 
transformOther(hiveConnectionParam.getOther());
+            
jdbcUrlBuilder.append(";").append(transformOther(hiveConnectionParam.getOther()));
         }
-        return jdbcUrl;
+
+        return jdbcUrlBuilder.toString();
     }
 
     @Override
diff --git 
a/dolphinscheduler-datasource-plugin/dolphinscheduler-datasource-spark/src/main/java/org/apache/dolphinscheduler/plugin/datasource/spark/param/SparkDataSourceProcessor.java
 
b/dolphinscheduler-datasource-plugin/dolphinscheduler-datasource-spark/src/main/java/org/apache/dolphinscheduler/plugin/datasource/spark/param/SparkDataSourceProcessor.java
index b34ff17ba7..b603b7d2e0 100644
--- 
a/dolphinscheduler-datasource-plugin/dolphinscheduler-datasource-spark/src/main/java/org/apache/dolphinscheduler/plugin/datasource/spark/param/SparkDataSourceProcessor.java
+++ 
b/dolphinscheduler-datasource-plugin/dolphinscheduler-datasource-spark/src/main/java/org/apache/dolphinscheduler/plugin/datasource/spark/param/SparkDataSourceProcessor.java
@@ -30,6 +30,7 @@ import 
org.apache.dolphinscheduler.spi.datasource.ConnectionParam;
 import org.apache.dolphinscheduler.spi.enums.DbType;
 
 import org.apache.commons.collections4.MapUtils;
+import org.apache.commons.lang3.StringUtils;
 
 import java.io.IOException;
 import java.sql.Connection;
@@ -61,6 +62,7 @@ public class SparkDataSourceProcessor extends 
AbstractDataSourceProcessor {
         
sparkDatasourceParamDTO.setJavaSecurityKrb5Conf(connectionParams.getJavaSecurityKrb5Conf());
         
sparkDatasourceParamDTO.setLoginUserKeytabPath(connectionParams.getLoginUserKeytabPath());
         
sparkDatasourceParamDTO.setLoginUserKeytabUsername(connectionParams.getLoginUserKeytabUsername());
+        sparkDatasourceParamDTO.setPrincipal(connectionParams.getPrincipal());
 
         StringBuilder hosts = new StringBuilder();
         String[] tmpArray = 
connectionParams.getAddress().split(Constants.DOUBLE_SLASH);
@@ -125,11 +127,16 @@ public class SparkDataSourceProcessor extends 
AbstractDataSourceProcessor {
     @Override
     public String getJdbcUrl(ConnectionParam connectionParam) {
         SparkConnectionParam sparkConnectionParam = (SparkConnectionParam) 
connectionParam;
+
+        StringBuilder jdbcUrlBuilder = new 
StringBuilder(sparkConnectionParam.getJdbcUrl());
+        if (StringUtils.isNotBlank(sparkConnectionParam.getPrincipal())) {
+            
jdbcUrlBuilder.append(";principal=").append(sparkConnectionParam.getPrincipal());
+        }
         if (MapUtils.isNotEmpty(sparkConnectionParam.getOther())) {
-            return String.format("%s;%s", sparkConnectionParam.getJdbcUrl(),
-                    transformOther(sparkConnectionParam.getOther()));
+            
jdbcUrlBuilder.append(";").append(transformOther(sparkConnectionParam.getOther()));
         }
-        return sparkConnectionParam.getJdbcUrl();
+
+        return jdbcUrlBuilder.toString();
     }
 
     @Override

Reply via email to