diff --git a/src/main/java/com/alibaba/druid/pool/DruidDataSource.java b/src/main/java/com/alibaba/druid/pool/DruidDataSource.java index 0f06d961e4..f7830e468f 100644 --- a/src/main/java/com/alibaba/druid/pool/DruidDataSource.java +++ b/src/main/java/com/alibaba/druid/pool/DruidDataSource.java @@ -336,6 +336,10 @@ public class DruidDataSource extends DruidAbstractDataSource implements DruidDat this.id = DruidDriver.createDataSourceId(); loadFilterFromSystemProperty(); + + if (this.dbType == null || this.dbType.length() == 0) { + this.dbType = JdbcUtils.getDbType(jdbcUrl, null); + } for (Filter filter : filters) { filter.init(this); diff --git a/src/main/java/com/alibaba/druid/wall/WallFilter.java b/src/main/java/com/alibaba/druid/wall/WallFilter.java index 4f4ca8d54f..c81a6802aa 100644 --- a/src/main/java/com/alibaba/druid/wall/WallFilter.java +++ b/src/main/java/com/alibaba/druid/wall/WallFilter.java @@ -58,6 +58,10 @@ public class WallFilter extends FilterAdapter implements WallFilterMBean { if (this.dbType == null || this.dbType.trim().length() == 0) { this.dbType = dataSource.getDbType(); } + + if (dbType == null) { + dbType = JdbcUtils.getDbType(dataSource.getUrl(), null); + } if (JdbcUtils.MYSQL.equals(dbType)) { if (config == null) {