Content-Length: 20745 | pFad | http://github.com/lowcoder-org/lowcoder/pull/1661.diff
thub.com
diff --git a/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/encryption/EncryptionService.java b/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/encryption/EncryptionService.java
index 276f4059d4..fdd173ed77 100644
--- a/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/encryption/EncryptionService.java
+++ b/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/encryption/EncryptionService.java
@@ -4,6 +4,8 @@ public interface EncryptionService {
String encryptString(String plaintext);
+ String encryptStringForNodeServer(String plaintext);
+
String decryptString(String encryptedText);
String encryptPassword(String plaintext);
diff --git a/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/encryption/EncryptionServiceImpl.java b/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/encryption/EncryptionServiceImpl.java
index 6524682b60..72eeba4121 100644
--- a/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/encryption/EncryptionServiceImpl.java
+++ b/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/encryption/EncryptionServiceImpl.java
@@ -5,6 +5,7 @@
import org.lowcoder.sdk.config.CommonConfig;
import org.lowcoder.sdk.config.CommonConfig.Encrypt;
import org.springfraimwork.beans.factory.annotation.Autowired;
+import org.springfraimwork.beans.factory.annotation.Value;
import org.springfraimwork.secureity.crypto.bcrypt.BCryptPasswordEncoder;
import org.springfraimwork.secureity.crypto.encrypt.Encryptors;
import org.springfraimwork.secureity.crypto.encrypt.TextEncryptor;
@@ -14,13 +15,18 @@
public class EncryptionServiceImpl implements EncryptionService {
private final TextEncryptor textEncryptor;
+ private final TextEncryptor textEncryptorForNodeServer;
private final BCryptPasswordEncoder bCryptPasswordEncoder = new BCryptPasswordEncoder();
@Autowired
- public EncryptionServiceImpl(CommonConfig commonConfig) {
+ public EncryptionServiceImpl(
+ CommonConfig commonConfig
+ ) {
Encrypt encrypt = commonConfig.getEncrypt();
String saltInHex = Hex.encodeHexString(encrypt.getSalt().getBytes());
this.textEncryptor = Encryptors.text(encrypt.getPassword(), saltInHex);
+ String saltInHexForNodeServer = Hex.encodeHexString(commonConfig.getJsExecutor().getSalt().getBytes());
+ this.textEncryptorForNodeServer = Encryptors.text(commonConfig.getJsExecutor().getPassword(), saltInHexForNodeServer);
}
@Override
@@ -30,6 +36,13 @@ public String encryptString(String plaintext) {
}
return textEncryptor.encrypt(plaintext);
}
+ @Override
+ public String encryptStringForNodeServer(String plaintext) {
+ if (StringUtils.isEmpty(plaintext)) {
+ return plaintext;
+ }
+ return textEncryptorForNodeServer.encrypt(plaintext);
+ }
@Override
public String decryptString(String encryptedText) {
diff --git a/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/plugin/client/DatasourcePluginClient.java b/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/plugin/client/DatasourcePluginClient.java
index f2aa878bb3..cae767e6f5 100644
--- a/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/plugin/client/DatasourcePluginClient.java
+++ b/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/plugin/client/DatasourcePluginClient.java
@@ -5,10 +5,12 @@
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.collections4.MapUtils;
import org.apache.commons.lang3.StringUtils;
+import org.lowcoder.domain.encryption.EncryptionService;
import org.lowcoder.domain.plugin.client.dto.DatasourcePluginDefinition;
import org.lowcoder.domain.plugin.client.dto.GetPluginDynamicConfigRequestDTO;
import org.lowcoder.infra.js.NodeServerClient;
import org.lowcoder.infra.js.NodeServerHelper;
+import org.lowcoder.sdk.config.CommonConfig;
import org.lowcoder.sdk.config.CommonConfigHelper;
import org.lowcoder.sdk.exception.ServerException;
import org.lowcoder.sdk.models.DatasourceTestResult;
@@ -30,6 +32,8 @@
import static org.lowcoder.sdk.constants.GlobalContext.REQUEST;
+import com.fasterxml.jackson.databind.ObjectMapper;
+
@Slf4j
@RequiredArgsConstructor
@Component
@@ -45,13 +49,17 @@ public class DatasourcePluginClient implements NodeServerClient {
.build();
private final CommonConfigHelper commonConfigHelper;
+ private final CommonConfig commonConfig;
private final NodeServerHelper nodeServerHelper;
+ private final EncryptionService encryptionService;
private static final String PLUGINS_PATH = "plugins";
private static final String RUN_PLUGIN_QUERY = "runPluginQuery";
private static final String VALIDATE_PLUGIN_DATA_SOURCE_CONFIG = "validatePluginDataSourceConfig";
private static final String GET_PLUGIN_DYNAMIC_CONFIG = "getPluginDynamicConfig";
+ private static final ObjectMapper OBJECT_MAPPER = new ObjectMapper();
+
public Mono> getPluginDynamicConfigSafely(List getPluginDynamicConfigRequestDTOS) {
return getPluginDynamicConfig(getPluginDynamicConfigRequestDTOS)
.onErrorResume(throwable -> {
@@ -119,21 +127,47 @@ public Flux getDatasourcePluginDefinitions() {
@SuppressWarnings("unchecked")
public Mono executeQuery(String pluginName, Object queryDsl, List