From 7592defa3915844787b2f39f46c8118d83d986df Mon Sep 17 00:00:00 2001 From: an5er <1318861442@qq.com> Date: Sun, 7 Apr 2024 15:40:08 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E9=99=90=E5=88=B6=20clickhouse=20?= =?UTF-8?q?=E9=9D=9E=E6=B3=95=E5=8F=82=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../io/dataease/dto/datasource/CHConfiguration.java | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/core/backend/src/main/java/io/dataease/dto/datasource/CHConfiguration.java b/core/backend/src/main/java/io/dataease/dto/datasource/CHConfiguration.java index 224e07c596..b065cf38e6 100644 --- a/core/backend/src/main/java/io/dataease/dto/datasource/CHConfiguration.java +++ b/core/backend/src/main/java/io/dataease/dto/datasource/CHConfiguration.java @@ -11,14 +11,22 @@ public class CHConfiguration extends JdbcConfiguration { private String driver = "ru.yandex.clickhouse.ClickHouseDriver"; private String extraParams = ""; + private List illegalParameters = Arrays.asList("localFile"); public String getJdbc() { - if(StringUtils.isEmpty(extraParams.trim())){ + if (StringUtils.isEmpty(extraParams.trim())) { return "jdbc:clickhouse://HOSTNAME:PORT/DATABASE" .replace("HOSTNAME", getHost().trim()) .replace("PORT", getPort().toString().trim()) .replace("DATABASE", getDataBase().trim()); - }else { + } else { + for (String illegalParameter : getIllegalParameters()) { + if (getExtraParams().toLowerCase().contains(illegalParameter.toLowerCase()) || + URLDecoder.decode(getExtraParams()).toLowerCase().contains(illegalParameter.toLowerCase())) { + throw new RuntimeException("Illegal parameter: " + illegalParameter); + } + } + return "jdbc:clickhouse://HOSTNAME:PORT/DATABASE?EXTRA_PARAMS" .replace("HOSTNAME", getHost().trim()) .replace("PORT", getPort().toString().trim())