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;
|
||||
|
||||
@@ -0,0 +1,30 @@
|
||||
/*
|
||||
* Copyright 1999-2101 Alibaba Group Holding Ltd.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package com.alibaba.druid.bvt.filter.wall.oracle;
|
||||
|
||||
import com.alibaba.druid.wall.WallUtils;
|
||||
import junit.framework.TestCase;
|
||||
import org.junit.Assert;
|
||||
|
||||
public class OracleWallTest7 extends TestCase {
|
||||
|
||||
public void test_true() throws Exception {
|
||||
String sql = //
|
||||
"begin\n"
|
||||
+ "end";
|
||||
Assert.assertTrue(WallUtils.isValidateOracle(sql));
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user