mirror of
https://github.com/alibaba/druid.git
synced 2023-03-04 19:17:16 +00:00
refactor
This commit is contained in:
@@ -38,37 +38,35 @@ public class MySqlWallVisitor extends MySqlASTVisitorAdapter implements WallVisi
|
||||
private final Set<String> permitFunctions = new HashSet<String>();
|
||||
private final Set<String> permitTables = new HashSet<String>();
|
||||
private final Set<String> permitSchemas = new HashSet<String>();
|
||||
private final Set<String> permiNames = new HashSet<String>();
|
||||
private final Set<String> permitNames = new HashSet<String>();
|
||||
private final Set<String> permitObjects = new HashSet<String>();
|
||||
|
||||
private final List<Violation> violations;
|
||||
|
||||
public MySqlWallVisitor(){
|
||||
this(new ArrayList<Violation>());
|
||||
this(new ArrayList<Violation>(), true);
|
||||
}
|
||||
|
||||
public MySqlWallVisitor(boolean loadDefault) {
|
||||
this(new ArrayList<Violation>(), loadDefault);
|
||||
}
|
||||
|
||||
public MySqlWallVisitor(List<Violation> violations){
|
||||
public MySqlWallVisitor(List<Violation> violations, boolean loadDefault){
|
||||
this.violations = violations;
|
||||
|
||||
permitFunctions.add("version");
|
||||
permitFunctions.add("load_file");
|
||||
permitFunctions.add("databse");
|
||||
permitFunctions.add("schema");
|
||||
permitFunctions.add("user");
|
||||
permitFunctions.add("system_user");
|
||||
permitFunctions.add("session_user");
|
||||
permitFunctions.add("benchmark");
|
||||
permitFunctions.add("connection_id");
|
||||
permitFunctions.add("current_user");
|
||||
loadDefault();
|
||||
}
|
||||
|
||||
permitSchemas.add("information_schema");
|
||||
permitSchemas.add("mysql");
|
||||
|
||||
permitTables.add("outfile");
|
||||
public void loadDefault() {
|
||||
WallVisitorUtils.loadResource(this.permitNames, "META-INF/druid-filter-wall-permit-name-mysql.txt");
|
||||
WallVisitorUtils.loadResource(this.permitSchemas, "META-INF/druid-filter-wall-permit-schema-mysql.txt");
|
||||
WallVisitorUtils.loadResource(this.permitFunctions, "META-INF/druid-filter-wall-permit-function-mysql.txt");
|
||||
WallVisitorUtils.loadResource(this.permitTables, "META-INF/druid-filter-wall-permit-table-mysql.txt");
|
||||
WallVisitorUtils.loadResource(this.permitObjects, "META-INF/druid-filter-wall-permit-object-mysql.txt");
|
||||
}
|
||||
|
||||
public Set<String> getPermitNames() {
|
||||
return permiNames;
|
||||
return permitNames;
|
||||
}
|
||||
|
||||
public Set<String> getPermitFunctions() {
|
||||
@@ -116,7 +114,7 @@ public class MySqlWallVisitor extends MySqlASTVisitorAdapter implements WallVisi
|
||||
WallVisitorUtils.checkCondition(this, x.getHaving());
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
public boolean visit(MySqlSelectGroupBy x) {
|
||||
WallVisitorUtils.checkCondition(this, x.getHaving());
|
||||
return true;
|
||||
@@ -127,26 +125,25 @@ public class MySqlWallVisitor extends MySqlASTVisitorAdapter implements WallVisi
|
||||
WallVisitorUtils.checkCondition(this, x.getWhere());
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public boolean visit(MySqlDeleteStatement x) {
|
||||
WallVisitorUtils.checkCondition(this, x.getWhere());
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
public boolean visit(SQLDeleteStatement x) {
|
||||
WallVisitorUtils.checkCondition(this, x.getWhere());
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public boolean visit(SQLUpdateStatement x) {
|
||||
WallVisitorUtils.checkCondition(this, x.getWhere());
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public boolean visit(Limit x) {
|
||||
if (x.getRowCount() instanceof SQLNumericLiteralExpr) {
|
||||
|
||||
@@ -44,12 +44,20 @@ public class OracleWallVisitor extends OracleASTVIsitorAdapter implements WallVi
|
||||
private final List<Violation> violations;
|
||||
|
||||
public OracleWallVisitor(){
|
||||
this(new ArrayList<Violation>());
|
||||
this(new ArrayList<Violation>(), true);
|
||||
}
|
||||
|
||||
public OracleWallVisitor(boolean loadDefault) {
|
||||
this(new ArrayList<Violation>(), loadDefault);
|
||||
}
|
||||
|
||||
public OracleWallVisitor(List<Violation> violations){
|
||||
public OracleWallVisitor(List<Violation> violations, boolean loadDefault){
|
||||
this.violations = violations;
|
||||
|
||||
loadDefault();
|
||||
}
|
||||
|
||||
public void loadDefault() {
|
||||
WallVisitorUtils.loadResource(this.permitNames, "META-INF/druid-filter-wall-permit-name-oracle.txt");
|
||||
WallVisitorUtils.loadResource(this.permitSchemas, "META-INF/druid-filter-wall-permit-schema-oracle.txt");
|
||||
WallVisitorUtils.loadResource(this.permitFunctions, "META-INF/druid-filter-wall-permit-function-oracle.txt");
|
||||
@@ -180,13 +188,13 @@ public class OracleWallVisitor extends OracleASTVIsitorAdapter implements WallVi
|
||||
WallVisitorUtils.checkCondition(this, x.getWhere());
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public boolean visit(SQLUpdateStatement x) {
|
||||
WallVisitorUtils.checkCondition(this, x.getWhere());
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public boolean visit(OracleUpdateStatement x) {
|
||||
WallVisitorUtils.checkCondition(this, x.getWhere());
|
||||
|
||||
@@ -0,0 +1,10 @@
|
||||
version
|
||||
load_file
|
||||
databse
|
||||
schema
|
||||
user
|
||||
system_user
|
||||
session_user
|
||||
benchmark
|
||||
connection_id
|
||||
current_user
|
||||
@@ -0,0 +1,2 @@
|
||||
information_schema
|
||||
mysql
|
||||
Reference in New Issue
Block a user