You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@linkis.apache.org by pe...@apache.org on 2023/03/06 12:34:48 UTC
[linkis] branch dev-1.3.2 updated: fix datasource bug with keyDefinition with defalut value null (#4311)
This is an automated email from the ASF dual-hosted git repository.
peacewong pushed a commit to branch dev-1.3.2
in repository https://gitbox.apache.org/repos/asf/linkis.git
The following commit(s) were added to refs/heads/dev-1.3.2 by this push:
new 5cb31eaf5 fix datasource bug with keyDefinition with defalut value null (#4311)
5cb31eaf5 is described below
commit 5cb31eaf557caeac5b53b95a463a138759d1c1da
Author: Casion <ca...@gmail.com>
AuthorDate: Mon Mar 6 20:34:41 2023 +0800
fix datasource bug with keyDefinition with defalut value null (#4311)
---
.../core/restful/DataSourceCoreRestfulApi.java | 63 ++++++++++++----------
.../service/impl/MetadataQueryServiceImpl.java | 3 +-
2 files changed, 38 insertions(+), 28 deletions(-)
diff --git a/linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/server/src/main/java/org/apache/linkis/datasourcemanager/core/restful/DataSourceCoreRestfulApi.java b/linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/server/src/main/java/org/apache/linkis/datasourcemanager/core/restful/DataSourceCoreRestfulApi.java
index c5c15be50..927346bb7 100644
--- a/linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/server/src/main/java/org/apache/linkis/datasourcemanager/core/restful/DataSourceCoreRestfulApi.java
+++ b/linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/server/src/main/java/org/apache/linkis/datasourcemanager/core/restful/DataSourceCoreRestfulApi.java
@@ -37,6 +37,8 @@ import org.apache.linkis.metadata.query.common.MdmConfiguration;
import org.apache.linkis.server.Message;
import org.apache.linkis.server.utils.ModuleUserUtils;
+import org.apache.commons.lang3.StringUtils;
+
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
@@ -259,7 +261,8 @@ public class DataSourceCoreRestfulApi {
keyDefinitionList.forEach(
keyDefinition -> {
String key = keyDefinition.getKey();
- if (!connectParams.containsKey(key)) {
+ if (StringUtils.isNotBlank(keyDefinition.getDefaultValue())
+ && !connectParams.containsKey(key)) {
connectParams.put(key, keyDefinition.getDefaultValue());
}
});
@@ -315,7 +318,8 @@ public class DataSourceCoreRestfulApi {
keyDefinitionList.forEach(
keyDefinition -> {
String key = keyDefinition.getKey();
- if (!connectParams.containsKey(key)) {
+ if (StringUtils.isNotBlank(keyDefinition.getDefaultValue())
+ && !connectParams.containsKey(key)) {
connectParams.put(key, keyDefinition.getDefaultValue());
}
});
@@ -361,10 +365,11 @@ public class DataSourceCoreRestfulApi {
if (!AuthContext.hasPermission(dataSource, userName)) {
return Message.error("Don't have query permission for data source [没有数据源的查询权限]");
}
+
+ List<DataSourceParamKeyDefinition> keyDefinitionList =
+ dataSourceRelateService.getKeyDefinitionsByType(dataSource.getDataSourceTypeId());
// Decrypt
- RestfulApiHelper.decryptPasswordKey(
- dataSourceRelateService.getKeyDefinitionsByType(dataSource.getDataSourceTypeId()),
- dataSource.getConnectParams());
+ RestfulApiHelper.decryptPasswordKey(keyDefinitionList, dataSource.getConnectParams());
return Message.ok().data("info", dataSource);
},
"Fail to access data source[获取数据源信息失败]");
@@ -396,10 +401,11 @@ public class DataSourceCoreRestfulApi {
if (!AuthContext.hasPermission(dataSource, userName)) {
return Message.error("Don't have query permission for data source [没有数据源的查询权限]");
}
+
+ List<DataSourceParamKeyDefinition> keyDefinitionList =
+ dataSourceRelateService.getKeyDefinitionsByType(dataSource.getDataSourceTypeId());
// Decrypt
- RestfulApiHelper.decryptPasswordKey(
- dataSourceRelateService.getKeyDefinitionsByType(dataSource.getDataSourceTypeId()),
- dataSource.getConnectParams());
+ RestfulApiHelper.decryptPasswordKey(keyDefinitionList, dataSource.getConnectParams());
return Message.ok().data("info", dataSource);
},
@@ -432,10 +438,10 @@ public class DataSourceCoreRestfulApi {
if (!AuthContext.hasPermission(dataSource, userName)) {
return Message.error("Don't have query permission for data source [没有数据源的查询权限]");
}
+ List<DataSourceParamKeyDefinition> keyDefinitionList =
+ dataSourceRelateService.getKeyDefinitionsByType(dataSource.getDataSourceTypeId());
// Decrypt
- RestfulApiHelper.decryptPasswordKey(
- dataSourceRelateService.getKeyDefinitionsByType(dataSource.getDataSourceTypeId()),
- dataSource.getConnectParams());
+ RestfulApiHelper.decryptPasswordKey(keyDefinitionList, dataSource.getConnectParams());
return Message.ok().data("info", dataSource);
},
@@ -477,10 +483,10 @@ public class DataSourceCoreRestfulApi {
if (!AuthContext.hasPermission(dataSource, userName)) {
return Message.error("Don't have query permission for data source [没有数据源的查询权限]");
}
+ List<DataSourceParamKeyDefinition> keyDefinitionList =
+ dataSourceRelateService.getKeyDefinitionsByType(dataSource.getDataSourceTypeId());
// Decrypt
- RestfulApiHelper.decryptPasswordKey(
- dataSourceRelateService.getKeyDefinitionsByType(dataSource.getDataSourceTypeId()),
- dataSource.getConnectParams());
+ RestfulApiHelper.decryptPasswordKey(keyDefinitionList, dataSource.getConnectParams());
return Message.ok().data("info", dataSource);
},
"Fail to access data source[获取数据源信息失败]");
@@ -514,14 +520,15 @@ public class DataSourceCoreRestfulApi {
return Message.error("Don't have query permission for data source [没有数据源的查询权限]");
}
List<DatasourceVersion> versions = dataSourceInfoService.getVersionList(dataSourceId);
+
+ List<DataSourceParamKeyDefinition> keyDefinitionList =
+ dataSourceRelateService.getKeyDefinitionsByType(dataSource.getDataSourceTypeId());
// Decrypt
if (null != versions) {
versions.forEach(
version -> {
RestfulApiHelper.decryptPasswordKey(
- dataSourceRelateService.getKeyDefinitionsByType(
- dataSource.getDataSourceTypeId()),
- version.getConnectParams());
+ keyDefinitionList, version.getConnectParams());
});
}
return Message.ok().data("versions", versions);
@@ -665,9 +672,9 @@ public class DataSourceCoreRestfulApi {
return Message.error("Don't have query permission for data source [没有数据源的查询权限]");
}
Map<String, Object> connectParams = dataSource.getConnectParams();
- RestfulApiHelper.decryptPasswordKey(
- dataSourceRelateService.getKeyDefinitionsByType(dataSource.getDataSourceTypeId()),
- connectParams);
+ List<DataSourceParamKeyDefinition> keyDefinitionList =
+ dataSourceRelateService.getKeyDefinitionsByType(dataSource.getDataSourceTypeId());
+ RestfulApiHelper.decryptPasswordKey(keyDefinitionList, connectParams);
return Message.ok().data("connectParams", connectParams);
},
"Fail to connect data source[连接数据源失败]");
@@ -700,9 +707,10 @@ public class DataSourceCoreRestfulApi {
return Message.error("Don't have query permission for data source [没有数据源的查询权限]");
}
Map<String, Object> connectParams = dataSource.getConnectParams();
- RestfulApiHelper.decryptPasswordKey(
- dataSourceRelateService.getKeyDefinitionsByType(dataSource.getDataSourceTypeId()),
- connectParams);
+
+ List<DataSourceParamKeyDefinition> keyDefinitionList =
+ dataSourceRelateService.getKeyDefinitionsByType(dataSource.getDataSourceTypeId());
+ RestfulApiHelper.decryptPasswordKey(keyDefinitionList, connectParams);
return Message.ok().data("connectParams", connectParams);
},
"Fail to connect data source[连接数据源失败]");
@@ -736,12 +744,12 @@ public class DataSourceCoreRestfulApi {
String dataSourceTypeName = dataSource.getDataSourceType().getName();
String mdRemoteServiceName = MdmConfiguration.METADATA_SERVICE_APPLICATION.getValue();
Map<String, Object> connectParams = dataSource.getConnectParams();
- RestfulApiHelper.decryptPasswordKey(
- dataSourceRelateService.getKeyDefinitionsByType(dataSource.getDataSourceTypeId()),
- connectParams);
+
// Get definitions
List<DataSourceParamKeyDefinition> keyDefinitionList =
dataSourceRelateService.getKeyDefinitionsByType(dataSource.getDataSourceTypeId());
+ RestfulApiHelper.decryptPasswordKey(keyDefinitionList, connectParams);
+
// For connecting, also need to handle the parameters
for (DataSourceParamsHook hook : dataSourceParamsHooks) {
hook.beforePersist(connectParams, keyDefinitionList);
@@ -835,7 +843,8 @@ public class DataSourceCoreRestfulApi {
keyDefinitionList.forEach(
keyDefinition -> {
String key = keyDefinition.getKey();
- if (!connectParams.containsKey(key)) {
+ if (StringUtils.isNotBlank(keyDefinition.getDefaultValue())
+ && !connectParams.containsKey(key)) {
connectParams.put(key, keyDefinition.getDefaultValue());
}
});
diff --git a/linkis-public-enhancements/linkis-datasource/linkis-metadata-query/server/src/main/java/org/apache/linkis/metadata/query/server/service/impl/MetadataQueryServiceImpl.java b/linkis-public-enhancements/linkis-datasource/linkis-metadata-query/server/src/main/java/org/apache/linkis/metadata/query/server/service/impl/MetadataQueryServiceImpl.java
index caf5c02bc..c7eb2602c 100644
--- a/linkis-public-enhancements/linkis-datasource/linkis-metadata-query/server/src/main/java/org/apache/linkis/metadata/query/server/service/impl/MetadataQueryServiceImpl.java
+++ b/linkis-public-enhancements/linkis-datasource/linkis-metadata-query/server/src/main/java/org/apache/linkis/metadata/query/server/service/impl/MetadataQueryServiceImpl.java
@@ -378,7 +378,8 @@ public class MetadataQueryServiceImpl implements MetadataQueryService {
if (rpcResult instanceof DsInfoResponse) {
DsInfoResponse response = (DsInfoResponse) rpcResult;
if (!response.status()) {
- throw new ErrorException(-1, "Error in Data Source Manager Server[数据源服务出错]");
+ throw new ErrorException(
+ -1, "Error in Data Source Manager Server[数据源服务出错] " + response.errorMsg());
}
boolean hasPermission =
(AuthContext.isAdministrator(userName)
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@linkis.apache.org
For additional commands, e-mail: commits-help@linkis.apache.org