diff --git a/src/main/java/com/alibaba/druid/filter/wall/WallConfig.java b/src/main/java/com/alibaba/druid/filter/wall/WallConfig.java index af3adbf9eb..428ed7d2d3 100644 --- a/src/main/java/com/alibaba/druid/filter/wall/WallConfig.java +++ b/src/main/java/com/alibaba/druid/filter/wall/WallConfig.java @@ -172,9 +172,19 @@ public class WallConfig { public Set getPermitObjects() { return permitObjects; } + + public boolean isPermitObjects(String name) { + name = WallVisitorUtils.form(name); + return permitObjects.contains(name); + } - public boolean containsPermitSchema(String name) { + public boolean isPermitSchema(String name) { name = WallVisitorUtils.form(name); return this.permitSchemas.contains(name); } + + public boolean isPermitFunction(String name) { + name = WallVisitorUtils.form(name); + return this.permitFunctions.contains(name); + } } diff --git a/src/main/java/com/alibaba/druid/filter/wall/WallVisitor.java b/src/main/java/com/alibaba/druid/filter/wall/WallVisitor.java index 718fd228a4..035fb94ada 100644 --- a/src/main/java/com/alibaba/druid/filter/wall/WallVisitor.java +++ b/src/main/java/com/alibaba/druid/filter/wall/WallVisitor.java @@ -13,7 +13,5 @@ public interface WallVisitor extends SQLASTVisitor { boolean containsPermitTable(String name); - boolean containsPermitObjects(String name); - String toSQL(SQLObject obj); } diff --git a/src/main/java/com/alibaba/druid/filter/wall/spi/MySqlWallVisitor.java b/src/main/java/com/alibaba/druid/filter/wall/spi/MySqlWallVisitor.java index 1589aa7e77..3679b89d6b 100644 --- a/src/main/java/com/alibaba/druid/filter/wall/spi/MySqlWallVisitor.java +++ b/src/main/java/com/alibaba/druid/filter/wall/spi/MySqlWallVisitor.java @@ -46,11 +46,6 @@ public class MySqlWallVisitor extends MySqlASTVisitorAdapter implements WallVisi return config; } - public boolean containsPermitObjects(String name) { - name = name.toLowerCase(); - return config.getPermitObjects().contains(name); - } - public List getViolations() { return violations; } @@ -205,7 +200,7 @@ public class MySqlWallVisitor extends MySqlASTVisitorAdapter implements WallVisi if (!config.isTableCheck()) { return false; } - + name = WallVisitorUtils.form(name); return config.getPermitTables().contains(name); } diff --git a/src/main/java/com/alibaba/druid/filter/wall/spi/OracleWallVisitor.java b/src/main/java/com/alibaba/druid/filter/wall/spi/OracleWallVisitor.java index 3a01a747b7..88941430b3 100644 --- a/src/main/java/com/alibaba/druid/filter/wall/spi/OracleWallVisitor.java +++ b/src/main/java/com/alibaba/druid/filter/wall/spi/OracleWallVisitor.java @@ -158,11 +158,6 @@ public class OracleWallVisitor extends OracleASTVIsitorAdapter implements WallVi } } - @Override - public boolean containsPermitObjects(String name) { - return config.getPermitObjects().contains(name); - } - @Override public boolean visit(SQLSelectStatement x) { if (!config.isSelelctAllow()) { diff --git a/src/main/java/com/alibaba/druid/filter/wall/spi/WallVisitorUtils.java b/src/main/java/com/alibaba/druid/filter/wall/spi/WallVisitorUtils.java index f8a9befa47..3b062c3064 100644 --- a/src/main/java/com/alibaba/druid/filter/wall/spi/WallVisitorUtils.java +++ b/src/main/java/com/alibaba/druid/filter/wall/spi/WallVisitorUtils.java @@ -47,7 +47,7 @@ public class WallVisitorUtils { if (x.getOwner() instanceof SQLIdentifierExpr) { String owner = x.getOwner().toString(); owner = WallVisitorUtils.form(owner); - if (visitor.containsPermitObjects(owner)) { + if (visitor.getConfig().isPermitObjects(owner)) { visitor.getViolations().add(new IllegalSQLObjectViolation(visitor.toSQL(x))); } } @@ -391,7 +391,7 @@ public class WallVisitorUtils { if (x.getOwner() instanceof SQLIdentifierExpr) { String owner = x.getOwner().toString(); owner = WallVisitorUtils.form(owner); - if (visitor.containsPermitObjects(owner)) { + if (visitor.getConfig().isPermitObjects(owner)) { visitor.getViolations().add(new IllegalSQLObjectViolation(visitor.toSQL(x))); } } @@ -402,7 +402,7 @@ public class WallVisitorUtils { String methodName = x.getMethodName(); - if (visitor.getConfig().getPermitFunctions().contains(methodName.toLowerCase())) { + if (visitor.getConfig().isPermitFunction(methodName.toLowerCase())) { visitor.getViolations().add(new IllegalSQLObjectViolation(visitor.toSQL(x))); }