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