sql wall support block statement.

This commit is contained in:
wenshao
2016-11-20 13:26:06 +08:00
parent b01273ce00
commit 0ff90bff30
4 changed files with 44 additions and 0 deletions
@@ -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;