mirror of
https://github.com/alibaba/druid.git
synced 2023-03-04 19:17:16 +00:00
refactor
This commit is contained in:
@@ -18,7 +18,7 @@ import com.alibaba.druid.util.JdbcUtils;
|
||||
|
||||
public class WallFilter extends FilterAdapter {
|
||||
|
||||
private boolean inited = false;
|
||||
private boolean inited = false;
|
||||
|
||||
private WallProvider provider;
|
||||
|
||||
@@ -26,6 +26,8 @@ public class WallFilter extends FilterAdapter {
|
||||
|
||||
private boolean loadExtend;
|
||||
|
||||
private boolean checkSelectAlwayTrueCondition = true;
|
||||
|
||||
@Override
|
||||
public void init(DataSourceProxy dataSource) {
|
||||
this.dataSource = dataSource;
|
||||
@@ -35,10 +37,14 @@ public class WallFilter extends FilterAdapter {
|
||||
this.inited = true;
|
||||
}
|
||||
|
||||
public WallProvider getProvider() {
|
||||
return provider;
|
||||
}
|
||||
|
||||
public boolean isLoadDefault() {
|
||||
return loadDefault;
|
||||
}
|
||||
|
||||
|
||||
public void checkInit() {
|
||||
if (inited) {
|
||||
throw new DruidRuntimeException("wall filter is inited");
|
||||
@@ -200,15 +206,18 @@ public class WallFilter extends FilterAdapter {
|
||||
}
|
||||
|
||||
public WallProvider createWallProvider(String dbType) {
|
||||
WallProvider provider;
|
||||
if (JdbcUtils.MYSQL.equals(dbType)) {
|
||||
return new MySqlWallProvider(this.loadDefault, this.loadExtend);
|
||||
provider = new MySqlWallProvider(this.loadDefault, this.loadExtend);
|
||||
} else if (JdbcUtils.ORACLE.equals(dbType)) {
|
||||
provider = new OracleWallProvider(this.loadDefault, this.loadExtend);
|
||||
} else {
|
||||
throw new IllegalStateException("dbType not support : " + dbType);
|
||||
}
|
||||
|
||||
if (JdbcUtils.ORACLE.equals(dbType)) {
|
||||
return new OracleWallProvider(this.loadDefault, this.loadExtend);
|
||||
}
|
||||
provider.setCheckSelectAlwayTrueCondition(this.checkSelectAlwayTrueCondition);
|
||||
|
||||
throw new IllegalStateException("dbType not support : " + dbType);
|
||||
return provider;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -7,7 +7,7 @@ import com.alibaba.druid.sql.visitor.SQLASTVisitor;
|
||||
|
||||
public interface WallVisitor extends SQLASTVisitor {
|
||||
|
||||
WallProvider getWallProvider();
|
||||
WallProvider getProvider();
|
||||
|
||||
List<Violation> getViolations();
|
||||
|
||||
|
||||
@@ -41,7 +41,7 @@ public class MySqlWallVisitor extends MySqlASTVisitorAdapter implements WallVisi
|
||||
this.provider = provider;
|
||||
}
|
||||
|
||||
public WallProvider getWallProvider() {
|
||||
public WallProvider getProvider() {
|
||||
return provider;
|
||||
}
|
||||
|
||||
|
||||
@@ -179,7 +179,7 @@ public class OracleWallVisitor extends OracleASTVIsitorAdapter implements WallVi
|
||||
}
|
||||
|
||||
@Override
|
||||
public WallProvider getWallProvider() {
|
||||
public WallProvider getProvider() {
|
||||
return this.provider;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -59,7 +59,7 @@ public class WallVisitorUtils {
|
||||
return;
|
||||
}
|
||||
|
||||
WallProvider provider = visitor.getWallProvider();
|
||||
WallProvider provider = visitor.getProvider();
|
||||
if (!provider.isCheckSelectAlwayTrueCondition()) {
|
||||
return;
|
||||
}
|
||||
@@ -366,7 +366,7 @@ public class WallVisitorUtils {
|
||||
|
||||
String methodName = x.getMethodName();
|
||||
|
||||
if (visitor.getWallProvider().getPermitFunctions().contains(methodName.toLowerCase())) {
|
||||
if (visitor.getProvider().getPermitFunctions().contains(methodName.toLowerCase())) {
|
||||
visitor.getViolations().add(new IllegalSQLObjectViolation(visitor.toSQL(x)));
|
||||
}
|
||||
|
||||
@@ -384,7 +384,7 @@ public class WallVisitorUtils {
|
||||
|
||||
ownerName = form(ownerName);
|
||||
|
||||
if (visitor.getWallProvider().getPermitSchemas().contains(ownerName.toLowerCase())) {
|
||||
if (visitor.getProvider().getPermitSchemas().contains(ownerName.toLowerCase())) {
|
||||
visitor.getViolations().add(new IllegalSQLObjectViolation(visitor.toSQL(x)));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user