This commit is contained in:
温少
2012-03-18 22:07:04 +08:00
parent afdcf3570c
commit 9ffd91524e
8 changed files with 55 additions and 38 deletions
@@ -20,6 +20,7 @@ import com.alibaba.druid.sql.ast.statement.SQLSelectStatement;
import com.alibaba.druid.sql.ast.statement.SQLTruncateStatement;
import com.alibaba.druid.sql.ast.statement.SQLUnionQuery;
import com.alibaba.druid.sql.ast.statement.SQLUpdateStatement;
import com.alibaba.druid.sql.dialect.sqlserver.ast.expr.SQLServerObjectReferenceExpr;
import com.alibaba.druid.sql.dialect.sqlserver.visitor.SQLServerASTVisitor;
import com.alibaba.druid.sql.dialect.sqlserver.visitor.SQLServerASTVisitorAdapter;
import com.alibaba.druid.wall.IllegalSQLObjectViolation;
@@ -178,4 +179,12 @@ public class SQLServerWallVisitor extends SQLServerASTVisitorAdapter implements
return true;
}
@Override
public boolean visit(SQLServerObjectReferenceExpr x) {
if (config.isPermitSchema(x.getSchema()) || config.isPermitSchema(x.getDatabase())) {
this.getViolations().add(new IllegalSQLObjectViolation(this.toSQL(x)));
}
return true;
}
}
@@ -464,8 +464,8 @@ public class WallVisitorUtils {
if (expr instanceof SQLPropertyExpr) {
SQLPropertyExpr propExpr = (SQLPropertyExpr) expr;
if (propExpr.getOwner() instanceof SQLIdentifierExpr) {
String ownerName = ((SQLIdentifierExpr) propExpr.getOwner()).getName();
if (propExpr.getOwner() instanceof SQLName) {
String ownerName = ((SQLName) propExpr.getOwner()).getSimleName();
ownerName = form(ownerName);