improve WallFilter

This commit is contained in:
wenshao
2012-12-19 20:17:36 +08:00
parent ccff016298
commit 576b9763cf
3 changed files with 68 additions and 0 deletions
@@ -51,6 +51,8 @@ public class WallConfig implements WallConfigMBean {
private boolean commentAllow = false;
private boolean describeAllow = false;
private boolean schemaCheck = true;
private boolean tableCheck = true;
private boolean functionCheck = true;
@@ -173,6 +175,24 @@ public class WallConfig implements WallConfigMBean {
this.noneBaseStatementAllow = noneBaseStatementAllow;
}
/**
* allow mysql describe statement
* @since 0.2.10
* @return
*/
public boolean isDescribeAllow() {
return describeAllow;
}
/**
* set allow mysql describe statement
* @since 0.2.10
* @return
*/
public void setDescribeAllow(boolean describeAllow) {
this.describeAllow = describeAllow;
}
public boolean isTruncateAllow() {
return truncateAllow;
}
@@ -41,6 +41,7 @@ import com.alibaba.druid.sql.ast.statement.SQLUnionQuery;
import com.alibaba.druid.sql.ast.statement.SQLUpdateStatement;
import com.alibaba.druid.sql.dialect.mysql.ast.expr.MySqlOutFileExpr;
import com.alibaba.druid.sql.dialect.mysql.ast.statement.MySqlDeleteStatement;
import com.alibaba.druid.sql.dialect.mysql.ast.statement.MySqlDescribeStatement;
import com.alibaba.druid.sql.dialect.mysql.ast.statement.MySqlInsertStatement;
import com.alibaba.druid.sql.dialect.mysql.ast.statement.MySqlSelectGroupBy;
import com.alibaba.druid.sql.dialect.mysql.ast.statement.MySqlSelectQueryBlock;
@@ -259,6 +260,8 @@ public class MySqlWallVisitor extends MySqlASTVisitorAdapter implements WallVisi
allow = true;
} else if (x instanceof SQLTruncateStatement) {
allow = config.isTruncateAllow();
} else if (x instanceof MySqlDescribeStatement) {
allow = config.isDescribeAllow();
}
if (!allow) {