mirror of
https://github.com/alibaba/druid.git
synced 2023-03-04 19:17:16 +00:00
sql wall support block statement.
This commit is contained in:
@@ -45,6 +45,7 @@ public class WallConfig implements WallConfigMBean {
|
||||
private boolean hintAllow = true;
|
||||
private boolean lockTableAllow = true;
|
||||
private boolean startTransactionAllow = true;
|
||||
private boolean blockAllow = true;
|
||||
|
||||
private boolean conditionAndAlwayTrueAllow = false;
|
||||
private boolean conditionAndAlwayFalseAllow = false;
|
||||
@@ -789,6 +790,14 @@ public class WallConfig implements WallConfigMBean {
|
||||
this.insertValuesCheckSize = insertValuesCheckSize;
|
||||
}
|
||||
|
||||
public boolean isBlockAllow() {
|
||||
return blockAllow;
|
||||
}
|
||||
|
||||
public void setBlockAllow(boolean blockAllow) {
|
||||
this.blockAllow = blockAllow;
|
||||
}
|
||||
|
||||
public void configFromProperties(Properties properties) {
|
||||
{
|
||||
String propertyValue = properties.getProperty("druid.wall.tenantColumn");
|
||||
|
||||
@@ -2455,6 +2455,10 @@ public class WallVisitorUtils {
|
||||
allow = config.isStartTransactionAllow();
|
||||
denyMessage = "start transaction not allow";
|
||||
errorCode = ErrorCode.START_TRANSACTION_NOT_ALLOW;
|
||||
} else if (x instanceof SQLBlockStatement) {
|
||||
allow = config.isBlockAllow();
|
||||
denyMessage = "block statement not allow";
|
||||
errorCode = ErrorCode.BLOCK_NOT_ALLOW;
|
||||
} else {
|
||||
allow = config.isNoneBaseStatementAllow();
|
||||
errorCode = ErrorCode.NONE_BASE_STATEMENT_NOT_ALLOW;
|
||||
|
||||
@@ -34,6 +34,7 @@ public interface ErrorCode {
|
||||
public final static int COMMIT_NOT_ALLOW = 1301;
|
||||
public final static int ROLLBACK_NOT_ALLOW = 1302;
|
||||
public final static int START_TRANSACTION_NOT_ALLOW = 1303;
|
||||
public final static int BLOCK_NOT_ALLOW = 1304;
|
||||
|
||||
public final static int SET_NOT_ALLOW = 1200;
|
||||
public final static int DESC_NOT_ALLOW = 1201;
|
||||
|
||||
Reference in New Issue
Block a user