diff --git a/src/main/java/com/alibaba/druid/sql/SQLUtils.java b/src/main/java/com/alibaba/druid/sql/SQLUtils.java index d82ea56868..b0f2d969a5 100644 --- a/src/main/java/com/alibaba/druid/sql/SQLUtils.java +++ b/src/main/java/com/alibaba/druid/sql/SQLUtils.java @@ -293,6 +293,8 @@ public class SQLUtils { public static List split(SQLBinaryOpExpr x) { List groupList = new ArrayList(); + groupList.add(x.getRight()); + SQLExpr left = x.getLeft(); for (;;) { if (left instanceof SQLBinaryOpExpr && ((SQLBinaryOpExpr) left).getOperator() == x.getOperator()) { @@ -304,7 +306,6 @@ public class SQLUtils { break; } } - groupList.add(x.getRight()); return groupList; } } diff --git a/src/main/java/com/alibaba/druid/wall/WallConfig.java b/src/main/java/com/alibaba/druid/wall/WallConfig.java index 61d05f39b4..d6d975936a 100644 --- a/src/main/java/com/alibaba/druid/wall/WallConfig.java +++ b/src/main/java/com/alibaba/druid/wall/WallConfig.java @@ -113,18 +113,18 @@ public class WallConfig implements WallConfigMBean { private boolean conditionOpXorAllow = false; private boolean conditionOpBitwseAllow = true; - private boolean caseConditionAllow = false; + private boolean caseConditionConstAllow = false; public WallConfig(){ } - public boolean isCaseConditionAllow() { - return caseConditionAllow; + public boolean isCaseConditionConstAllow() { + return caseConditionConstAllow; } - public void setCaseConditionAllow(boolean caseConditionAllow) { - this.caseConditionAllow = caseConditionAllow; + public void setCaseConditionConstAllow(boolean caseConditionConstAllow) { + this.caseConditionConstAllow = caseConditionConstAllow; } public boolean isConditionDoubleConstAllow() { diff --git a/src/main/java/com/alibaba/druid/wall/spi/WallVisitorUtils.java b/src/main/java/com/alibaba/druid/wall/spi/WallVisitorUtils.java index 9f24e1a124..3803409e69 100644 --- a/src/main/java/com/alibaba/druid/wall/spi/WallVisitorUtils.java +++ b/src/main/java/com/alibaba/druid/wall/spi/WallVisitorUtils.java @@ -1050,7 +1050,7 @@ public class WallVisitorUtils { Object result = getValue(caseExpr); - if (visitor != null && !visitor.getConfig().isCaseConditionAllow()) { + if (visitor != null && !visitor.getConfig().isCaseConditionConstAllow()) { boolean leftIsName = false; if (x.getParent() instanceof SQLBinaryOpExpr) { SQLExpr left = ((SQLBinaryOpExpr) x.getParent()).getLeft(); @@ -1083,7 +1083,7 @@ public class WallVisitorUtils { if (x instanceof SQLCaseExpr) { - if (visitor != null && !visitor.getConfig().isCaseConditionAllow()) { + if (visitor != null && !visitor.getConfig().isCaseConditionConstAllow()) { SQLCaseExpr caseExpr = (SQLCaseExpr) x; boolean leftIsName = false;