From bf485add69576ea72162c554378312055751d29d Mon Sep 17 00:00:00 2001 From: taojinlong Date: Tue, 11 Oct 2022 16:01:06 +0800 Subject: [PATCH] =?UTF-8?q?fix(=E6=95=B0=E6=8D=AE=E6=BA=90):=20Mysql=20jdb?= =?UTF-8?q?c=E5=8F=8D=E5=BA=8F=E5=88=97=E5=8C=96=E6=BC=8F=E6=B4=9E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dto/datasource/MysqlConfiguration.java | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/backend/src/main/java/io/dataease/dto/datasource/MysqlConfiguration.java b/backend/src/main/java/io/dataease/dto/datasource/MysqlConfiguration.java index 7c0378ace3..6a22b778f0 100644 --- a/backend/src/main/java/io/dataease/dto/datasource/MysqlConfiguration.java +++ b/backend/src/main/java/io/dataease/dto/datasource/MysqlConfiguration.java @@ -5,20 +5,30 @@ import lombok.Getter; import lombok.Setter; import org.apache.commons.lang3.StringUtils; +import java.util.Arrays; +import java.util.List; + @Getter @Setter public class MysqlConfiguration extends JdbcConfiguration { private String driver = "com.mysql.jdbc.Driver"; private String extraParams = "characterEncoding=UTF-8&connectTimeout=5000&useSSL=false&allowPublicKeyRetrieval=true&zeroDateTimeBehavior=convertToNull"; + private List illegalParameters = Arrays.asList("autoDeserialize", "queryInterceptors", "statementInterceptors", "detectCustomCollations"); public String getJdbc() { - if(StringUtils.isEmpty(extraParams.trim())){ + if (StringUtils.isEmpty(extraParams.trim())) { return "jdbc:mysql://HOSTNAME:PORT/DATABASE" .replace("HOSTNAME", getHost().trim()) .replace("PORT", getPort().toString().trim()) .replace("DATABASE", getDataBase().trim()); - }else { + } else { + for (String illegalParameter : illegalParameters) { + if (getExtraParams().contains(illegalParameter)) { + throw new RuntimeException("Illegal parameter: " + illegalParameter); + } + } + return "jdbc:mysql://HOSTNAME:PORT/DATABASE?EXTRA_PARAMS" .replace("HOSTNAME", getHost().trim()) .replace("PORT", getPort().toString().trim())