diff --git a/src/main/java/com/alibaba/druid/wall/WallConfig.java b/src/main/java/com/alibaba/druid/wall/WallConfig.java index b0d0bc3a3f..22dcee7c21 100644 --- a/src/main/java/com/alibaba/druid/wall/WallConfig.java +++ b/src/main/java/com/alibaba/druid/wall/WallConfig.java @@ -1,633 +1,633 @@ -/* - * Copyright 1999-2011 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.wall; - -import static com.alibaba.druid.wall.spi.WallVisitorUtils.loadResource; - -import java.util.Set; -import java.util.concurrent.ConcurrentSkipListSet; - -import com.alibaba.druid.wall.spi.WallVisitorUtils; - -public class WallConfig implements WallConfigMBean { - - private boolean noneBaseStatementAllow = false; - - private boolean callAllow = true; - private boolean selelctAllow = true; - private boolean selectIntoAllow = true; - private boolean selectIntoOutfileAllow = false; - private boolean selectWhereAlwayTrueCheck = true; - private boolean selectHavingAlwayTrueCheck = false; - private boolean selectUnionCheck = true; - private boolean createTableAllow = true; - private boolean dropTableAllow = true; - private boolean alterTableAllow = true; - private boolean conditionAndAlwayTrueAllow = false; - - private boolean selectAllColumnAllow = true; - - private boolean deleteAllow = true; - private boolean deleteWhereAlwayTrueCheck = true; - private boolean deleteWhereNoneCheck = false; - - private boolean updateAllow = true; - private boolean updateWhereAlayTrueCheck = true; - private boolean updateWhereNoneCheck = false; - - private boolean insertAllow = true; - private boolean mergeAllow = true; - private boolean minusAllow = false; - private boolean intersectAllow = false; - private boolean replaceAllow = true; - private boolean setAllow = true; - private boolean commitAllow = true; - private boolean rollbackAllow = true; - private boolean useAllow = false; - - private boolean multiStatementAllow = false; - - private boolean truncateAllow = true; - - private boolean commentAllow = false; - private boolean strictSyntaxCheck = true; - private boolean constArithmeticAllow = true; - private boolean limitZeroAllow = false; - - private boolean describeAllow = true; - private boolean showAllow = true; - - private boolean schemaCheck = true; - private boolean tableCheck = true; - private boolean functionCheck = true; - private boolean objectCheck = true; - private boolean variantCheck = true; - - private boolean mustParameterized = false; - - private boolean doPrivilegedAllow = false; - - protected final Set denyFunctions = new ConcurrentSkipListSet(); - protected final Set denyTables = new ConcurrentSkipListSet(); - protected final Set denySchemas = new ConcurrentSkipListSet(); - protected final Set denyVariants = new ConcurrentSkipListSet(); - protected final Set denyObjects = new ConcurrentSkipListSet(); - - protected final Set permitFunctions = new ConcurrentSkipListSet(); - protected final Set permitTables = new ConcurrentSkipListSet(); - protected final Set permitSchemas = new ConcurrentSkipListSet(); - protected final Set permitVariants = new ConcurrentSkipListSet(); - - protected final Set readOnlyTables = new ConcurrentSkipListSet(); - - private String dir; - - private boolean inited; - - private String tenantTablePattern; - private String tenantColumn; - - private boolean wrapAllow = true; - private boolean metadataAllow = true; - - private boolean conditionOpXorAllow = false; - private boolean conditionOpBitwseAllow = true; - - public WallConfig(){ - - } - - public boolean isLimitZeroAllow() { - return limitZeroAllow; - } - - public void setLimitZeroAllow(boolean limitZero) { - this.limitZeroAllow = limitZero; - } - - public boolean isConditionAndAlwayTrueAllow() { - return conditionAndAlwayTrueAllow; - } - - public void setConditionAndAlwayTrueAllow(boolean conditionAndAlwayTrueAllow) { - this.conditionAndAlwayTrueAllow = conditionAndAlwayTrueAllow; - } - - public boolean isUseAllow() { - return useAllow; - } - - public void setUseAllow(boolean useAllow) { - this.useAllow = useAllow; - } - - public boolean isCommitAllow() { - return commitAllow; - } - - public void setCommitAllow(boolean commitAllow) { - this.commitAllow = commitAllow; - } - - public boolean isRollbackAllow() { - return rollbackAllow; - } - - public void setRollbackAllow(boolean rollbackAllow) { - this.rollbackAllow = rollbackAllow; - } - - public boolean isIntersectAllow() { - return intersectAllow; - } - - public void setIntersectAllow(boolean intersectAllow) { - this.intersectAllow = intersectAllow; - } - - public boolean isMinusAllow() { - return minusAllow; - } - - public void setMinusAllow(boolean minusAllow) { - this.minusAllow = minusAllow; - } - - public boolean isConditionOpXorAllow() { - return conditionOpXorAllow; - } - - public void setConditionOpXorAllow(boolean conditionOpXorAllow) { - this.conditionOpXorAllow = conditionOpXorAllow; - } - - public boolean isConditionOpBitwseAllow() { - return conditionOpBitwseAllow; - } - - public void setConditionOpBitwseAllow(boolean conditionOpBitwseAllow) { - this.conditionOpBitwseAllow = conditionOpBitwseAllow; - } - - public String getTenantTablePattern() { - return tenantTablePattern; - } - - public void setTenantTablePattern(String tenantTablePattern) { - this.tenantTablePattern = tenantTablePattern; - } - - public String getTenantColumn() { - return tenantColumn; - } - - public void setTenantColumn(String tenantColumn) { - this.tenantColumn = tenantColumn; - } - - public boolean isMetadataAllow() { - return metadataAllow; - } - - public void setMetadataAllow(boolean metadataAllow) { - this.metadataAllow = metadataAllow; - } - - public boolean isWrapAllow() { - return wrapAllow; - } - - public void setWrapAllow(boolean wrapAllow) { - this.wrapAllow = wrapAllow; - } - - public boolean isDoPrivilegedAllow() { - return doPrivilegedAllow; - } - - public void setDoPrivilegedAllow(boolean doPrivilegedAllow) { - this.doPrivilegedAllow = doPrivilegedAllow; - } - - public boolean isSelectAllColumnAllow() { - return selectAllColumnAllow; - } - - public void setSelectAllColumnAllow(boolean selectAllColumnAllow) { - this.selectAllColumnAllow = selectAllColumnAllow; - } - - public boolean isInited() { - return inited; - } - - public WallConfig(String dir){ - this.dir = dir; - this.init(); - } - - public String getDir() { - return dir; - } - - public void setDir(String dir) { - this.dir = dir; - } - - public final void init() { - loadConfig(dir); - } - - public void loadConfig(String dir) { - if (dir.endsWith("/")) { - dir = dir.substring(0, dir.length() - 1); - } - - loadResource(this.denyVariants, dir + "/deny-variant.txt"); - loadResource(this.denySchemas, dir + "/deny-schema.txt"); - loadResource(this.denyFunctions, dir + "/deny-function.txt"); - loadResource(this.denyTables, dir + "/deny-table.txt"); - loadResource(this.denyObjects, dir + "/deny-object.txt"); - loadResource(this.readOnlyTables, dir + "/readonly-table.txt"); - - loadResource(this.permitFunctions, dir + "/permit-function.txt"); - loadResource(this.permitTables, dir + "/permit-table.txt"); - loadResource(this.permitSchemas, dir + "/permit-schema.txt"); - loadResource(this.permitVariants, dir + "/permit-variant.txt"); - } - - public boolean isNoneBaseStatementAllow() { - return noneBaseStatementAllow; - } - - public void setNoneBaseStatementAllow(boolean noneBaseStatementAllow) { - this.noneBaseStatementAllow = noneBaseStatementAllow; - } - - /** - * allow mysql describe statement - * - * @since 0.2.10 - * @return - */ - public boolean isDescribeAllow() { - return describeAllow; - } - - /** - * set allow mysql describe statement - * - * @since 0.2.10 - * @return - */ - public void setDescribeAllow(boolean describeAllow) { - this.describeAllow = describeAllow; - } - - public boolean isShowAllow() { - return showAllow; - } - - public void setShowAllow(boolean showAllow) { - this.showAllow = showAllow; - } - - public boolean isTruncateAllow() { - return truncateAllow; - } - - public void setTruncateAllow(boolean truncateAllow) { - this.truncateAllow = truncateAllow; - } - - public boolean isSelelctAllow() { - return selelctAllow; - } - - public void setSelelctAllow(boolean selelctAllow) { - this.selelctAllow = selelctAllow; - } - - public boolean isSelectIntoAllow() { - return selectIntoAllow; - } - - public void setSelectIntoAllow(boolean selectIntoAllow) { - this.selectIntoAllow = selectIntoAllow; - } - - public boolean isSelectIntoOutfileAllow() { - return selectIntoOutfileAllow; - } - - public void setSelectIntoOutfileAllow(boolean selectIntoOutfileAllow) { - this.selectIntoOutfileAllow = selectIntoOutfileAllow; - } - - public boolean isCreateTableAllow() { - return createTableAllow; - } - - public void setCreateTableAllow(boolean createTableAllow) { - this.createTableAllow = createTableAllow; - } - - public boolean isDropTableAllow() { - return dropTableAllow; - } - - public void setDropTableAllow(boolean dropTableAllow) { - this.dropTableAllow = dropTableAllow; - } - - public boolean isAlterTableAllow() { - return alterTableAllow; - } - - public void setAlterTableAllow(boolean alterTableAllow) { - this.alterTableAllow = alterTableAllow; - } - - public boolean isSelectUnionCheck() { - return selectUnionCheck; - } - - public void setSelectUnionCheck(boolean selectUnionCheck) { - this.selectUnionCheck = selectUnionCheck; - } - - public boolean isSelectWhereAlwayTrueCheck() { - return selectWhereAlwayTrueCheck; - } - - public void setSelectWhereAlwayTrueCheck(boolean selectWhereAlwayTrueCheck) { - this.selectWhereAlwayTrueCheck = selectWhereAlwayTrueCheck; - } - - public boolean isSelectHavingAlwayTrueCheck() { - return selectHavingAlwayTrueCheck; - } - - public void setSelectHavingAlwayTrueCheck(boolean selectHavingAlwayTrueCheck) { - this.selectHavingAlwayTrueCheck = selectHavingAlwayTrueCheck; - } - - public boolean isDeleteAllow() { - return deleteAllow; - } - - public void setDeleteAllow(boolean deleteAllow) { - this.deleteAllow = deleteAllow; - } - - public boolean isDeleteWhereAlwayTrueCheck() { - return deleteWhereAlwayTrueCheck; - } - - public void setDeleteWhereAlwayTrueCheck(boolean deleteWhereAlwayTrueCheck) { - this.deleteWhereAlwayTrueCheck = deleteWhereAlwayTrueCheck; - } - - public boolean isDeleteWhereNoneCheck() { - return deleteWhereNoneCheck; - } - - public void setDeleteWhereNoneCheck(boolean deleteWhereNoneCheck) { - this.deleteWhereNoneCheck = deleteWhereNoneCheck; - } - - public boolean isUpdateAllow() { - return updateAllow; - } - - public void setUpdateAllow(boolean updateAllow) { - this.updateAllow = updateAllow; - } - - public boolean isUpdateWhereAlayTrueCheck() { - return updateWhereAlayTrueCheck; - } - - public void setUpdateWhereAlayTrueCheck(boolean updateWhereAlayTrueCheck) { - this.updateWhereAlayTrueCheck = updateWhereAlayTrueCheck; - } - - public boolean isUpdateWhereNoneCheck() { - return updateWhereNoneCheck; - } - - public void setUpdateWhereNoneCheck(boolean updateWhereNoneCheck) { - this.updateWhereNoneCheck = updateWhereNoneCheck; - } - - public boolean isInsertAllow() { - return insertAllow; - } - - public void setInsertAllow(boolean insertAllow) { - this.insertAllow = insertAllow; - } - - public boolean isReplaceAllow() { - return replaceAllow; - } - - public void setReplaceAllow(boolean replaceAllow) { - this.replaceAllow = replaceAllow; - } - - public boolean isSetAllow() { - return setAllow; - } - - public void setSetAllow(boolean value) { - this.setAllow = value; - } - - public boolean isMergeAllow() { - return mergeAllow; - } - - public void setMergeAllow(boolean mergeAllow) { - this.mergeAllow = mergeAllow; - } - - public boolean isMultiStatementAllow() { - return multiStatementAllow; - } - - public void setMultiStatementAllow(boolean multiStatementAllow) { - this.multiStatementAllow = multiStatementAllow; - } - - public boolean isSchemaCheck() { - return schemaCheck; - } - - public void setSchemaCheck(boolean schemaCheck) { - this.schemaCheck = schemaCheck; - } - - public boolean isTableCheck() { - return tableCheck; - } - - public void setTableCheck(boolean tableCheck) { - this.tableCheck = tableCheck; - } - - public boolean isFunctionCheck() { - return functionCheck; - } - - public void setFunctionCheck(boolean functionCheck) { - this.functionCheck = functionCheck; - } - - public boolean isVariantCheck() { - return variantCheck; - } - - public void setVariantCheck(boolean variantCheck) { - this.variantCheck = variantCheck; - } - - public boolean isObjectCheck() { - return objectCheck; - } - - public void setObjectCheck(boolean objectCheck) { - this.objectCheck = objectCheck; - } - - // /////////////////// - - public boolean isCommentAllow() { - return commentAllow; - } - - public void setCommentAllow(boolean commentAllow) { - this.commentAllow = commentAllow; - } - - public boolean isStrictSyntaxCheck() { - return strictSyntaxCheck; - } - - public void setStrictSyntaxCheck(boolean strictSyntaxCheck) { - this.strictSyntaxCheck = strictSyntaxCheck; - } - - public boolean isConstArithmeticAllow() { - return constArithmeticAllow; - } - - public void setConstArithmeticAllow(boolean constArithmeticAllow) { - this.constArithmeticAllow = constArithmeticAllow; - } - - public Set getDenyFunctions() { - return denyFunctions; - } - - public Set getDenyTables() { - return denyTables; - } - - public Set getDenySchemas() { - return denySchemas; - } - - public Set getDenyVariants() { - return denyVariants; - } - - public Set getDenyObjects() { - return denyObjects; - } - - public Set getReadOnlyTables() { - return readOnlyTables; - } - - public void addReadOnlyTable(String tableName) { - this.readOnlyTables.add(tableName); - } - - public boolean isReadOnly(String tableName) { - return this.readOnlyTables.contains(tableName); - } - - public Set getPermitFunctions() { - return permitFunctions; - } - - public Set getPermitTables() { - return permitTables; - } - - public Set getPermitSchemas() { - return permitSchemas; - } - - public Set getPermitVariants() { - return permitVariants; - } - - public boolean isMustParameterized() { - return mustParameterized; - } - - public void setMustParameterized(boolean mustParameterized) { - this.mustParameterized = mustParameterized; - } - - public boolean isDenyObjects(String name) { - if (!objectCheck) { - return false; - } - - name = WallVisitorUtils.form(name); - return denyObjects.contains(name); - } - - public boolean isDenySchema(String name) { - if (!schemaCheck) { - return false; - } - - name = WallVisitorUtils.form(name); - return this.denySchemas.contains(name); - } - - public boolean isDenyFunction(String name) { - if (!functionCheck) { - return false; - } - - name = WallVisitorUtils.form(name); - return this.denyFunctions.contains(name); - } - - public boolean isCallAllow() { - return callAllow; - } - - public void setCallAllow(boolean callAllow) { - this.callAllow = callAllow; - } - -} +/* + * Copyright 1999-2011 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.wall; + +import static com.alibaba.druid.wall.spi.WallVisitorUtils.loadResource; + +import java.util.Set; +import java.util.concurrent.ConcurrentSkipListSet; + +import com.alibaba.druid.wall.spi.WallVisitorUtils; + +public class WallConfig implements WallConfigMBean { + + private boolean noneBaseStatementAllow = false; + + private boolean callAllow = true; + private boolean selelctAllow = true; + private boolean selectIntoAllow = true; + private boolean selectIntoOutfileAllow = false; + private boolean selectWhereAlwayTrueCheck = true; + private boolean selectHavingAlwayTrueCheck = false; + private boolean selectUnionCheck = true; + private boolean createTableAllow = true; + private boolean dropTableAllow = true; + private boolean alterTableAllow = true; + private boolean conditionAndAlwayTrueAllow = false; + + private boolean selectAllColumnAllow = true; + + private boolean deleteAllow = true; + private boolean deleteWhereAlwayTrueCheck = true; + private boolean deleteWhereNoneCheck = false; + + private boolean updateAllow = true; + private boolean updateWhereAlayTrueCheck = true; + private boolean updateWhereNoneCheck = false; + + private boolean insertAllow = true; + private boolean mergeAllow = true; + private boolean minusAllow = false; + private boolean intersectAllow = false; + private boolean replaceAllow = true; + private boolean setAllow = true; + private boolean commitAllow = true; + private boolean rollbackAllow = true; + private boolean useAllow = false; + + private boolean multiStatementAllow = false; + + private boolean truncateAllow = true; + + private boolean commentAllow = false; + private boolean strictSyntaxCheck = true; + private boolean constArithmeticAllow = true; + private boolean limitZeroAllow = false; + + private boolean describeAllow = true; + private boolean showAllow = true; + + private boolean schemaCheck = true; + private boolean tableCheck = true; + private boolean functionCheck = true; + private boolean objectCheck = true; + private boolean variantCheck = true; + + private boolean mustParameterized = false; + + private boolean doPrivilegedAllow = false; + + protected final Set denyFunctions = new ConcurrentSkipListSet(); + protected final Set denyTables = new ConcurrentSkipListSet(); + protected final Set denySchemas = new ConcurrentSkipListSet(); + protected final Set denyVariants = new ConcurrentSkipListSet(); + protected final Set denyObjects = new ConcurrentSkipListSet(); + + protected final Set permitFunctions = new ConcurrentSkipListSet(); + protected final Set permitTables = new ConcurrentSkipListSet(); + protected final Set permitSchemas = new ConcurrentSkipListSet(); + protected final Set permitVariants = new ConcurrentSkipListSet(); + + protected final Set readOnlyTables = new ConcurrentSkipListSet(); + + private String dir; + + private boolean inited; + + private String tenantTablePattern; + private String tenantColumn; + + private boolean wrapAllow = true; + private boolean metadataAllow = true; + + private boolean conditionOpXorAllow = false; + private boolean conditionOpBitwseAllow = true; + + public WallConfig(){ + + } + + public boolean isLimitZeroAllow() { + return limitZeroAllow; + } + + public void setLimitZeroAllow(boolean limitZero) { + this.limitZeroAllow = limitZero; + } + + public boolean isConditionAndAlwayTrueAllow() { + return conditionAndAlwayTrueAllow; + } + + public void setConditionAndAlwayTrueAllow(boolean conditionAndAlwayTrueAllow) { + this.conditionAndAlwayTrueAllow = conditionAndAlwayTrueAllow; + } + + public boolean isUseAllow() { + return useAllow; + } + + public void setUseAllow(boolean useAllow) { + this.useAllow = useAllow; + } + + public boolean isCommitAllow() { + return commitAllow; + } + + public void setCommitAllow(boolean commitAllow) { + this.commitAllow = commitAllow; + } + + public boolean isRollbackAllow() { + return rollbackAllow; + } + + public void setRollbackAllow(boolean rollbackAllow) { + this.rollbackAllow = rollbackAllow; + } + + public boolean isIntersectAllow() { + return intersectAllow; + } + + public void setIntersectAllow(boolean intersectAllow) { + this.intersectAllow = intersectAllow; + } + + public boolean isMinusAllow() { + return minusAllow; + } + + public void setMinusAllow(boolean minusAllow) { + this.minusAllow = minusAllow; + } + + public boolean isConditionOpXorAllow() { + return conditionOpXorAllow; + } + + public void setConditionOpXorAllow(boolean conditionOpXorAllow) { + this.conditionOpXorAllow = conditionOpXorAllow; + } + + public boolean isConditionOpBitwseAllow() { + return conditionOpBitwseAllow; + } + + public void setConditionOpBitwseAllow(boolean conditionOpBitwseAllow) { + this.conditionOpBitwseAllow = conditionOpBitwseAllow; + } + + public String getTenantTablePattern() { + return tenantTablePattern; + } + + public void setTenantTablePattern(String tenantTablePattern) { + this.tenantTablePattern = tenantTablePattern; + } + + public String getTenantColumn() { + return tenantColumn; + } + + public void setTenantColumn(String tenantColumn) { + this.tenantColumn = tenantColumn; + } + + public boolean isMetadataAllow() { + return metadataAllow; + } + + public void setMetadataAllow(boolean metadataAllow) { + this.metadataAllow = metadataAllow; + } + + public boolean isWrapAllow() { + return wrapAllow; + } + + public void setWrapAllow(boolean wrapAllow) { + this.wrapAllow = wrapAllow; + } + + public boolean isDoPrivilegedAllow() { + return doPrivilegedAllow; + } + + public void setDoPrivilegedAllow(boolean doPrivilegedAllow) { + this.doPrivilegedAllow = doPrivilegedAllow; + } + + public boolean isSelectAllColumnAllow() { + return selectAllColumnAllow; + } + + public void setSelectAllColumnAllow(boolean selectAllColumnAllow) { + this.selectAllColumnAllow = selectAllColumnAllow; + } + + public boolean isInited() { + return inited; + } + + public WallConfig(String dir){ + this.dir = dir; + this.init(); + } + + public String getDir() { + return dir; + } + + public void setDir(String dir) { + this.dir = dir; + } + + public final void init() { + loadConfig(dir); + } + + public void loadConfig(String dir) { + if (dir.endsWith("/")) { + dir = dir.substring(0, dir.length() - 1); + } + + loadResource(this.denyVariants, dir + "/deny-variant.txt"); + loadResource(this.denySchemas, dir + "/deny-schema.txt"); + loadResource(this.denyFunctions, dir + "/deny-function.txt"); + loadResource(this.denyTables, dir + "/deny-table.txt"); + loadResource(this.denyObjects, dir + "/deny-object.txt"); + loadResource(this.readOnlyTables, dir + "/readonly-table.txt"); + + loadResource(this.permitFunctions, dir + "/permit-function.txt"); + loadResource(this.permitTables, dir + "/permit-table.txt"); + loadResource(this.permitSchemas, dir + "/permit-schema.txt"); + loadResource(this.permitVariants, dir + "/permit-variant.txt"); + } + + public boolean isNoneBaseStatementAllow() { + return noneBaseStatementAllow; + } + + public void setNoneBaseStatementAllow(boolean noneBaseStatementAllow) { + this.noneBaseStatementAllow = noneBaseStatementAllow; + } + + /** + * allow mysql describe statement + * + * @since 0.2.10 + * @return + */ + public boolean isDescribeAllow() { + return describeAllow; + } + + /** + * set allow mysql describe statement + * + * @since 0.2.10 + * @return + */ + public void setDescribeAllow(boolean describeAllow) { + this.describeAllow = describeAllow; + } + + public boolean isShowAllow() { + return showAllow; + } + + public void setShowAllow(boolean showAllow) { + this.showAllow = showAllow; + } + + public boolean isTruncateAllow() { + return truncateAllow; + } + + public void setTruncateAllow(boolean truncateAllow) { + this.truncateAllow = truncateAllow; + } + + public boolean isSelelctAllow() { + return selelctAllow; + } + + public void setSelelctAllow(boolean selelctAllow) { + this.selelctAllow = selelctAllow; + } + + public boolean isSelectIntoAllow() { + return selectIntoAllow; + } + + public void setSelectIntoAllow(boolean selectIntoAllow) { + this.selectIntoAllow = selectIntoAllow; + } + + public boolean isSelectIntoOutfileAllow() { + return selectIntoOutfileAllow; + } + + public void setSelectIntoOutfileAllow(boolean selectIntoOutfileAllow) { + this.selectIntoOutfileAllow = selectIntoOutfileAllow; + } + + public boolean isCreateTableAllow() { + return createTableAllow; + } + + public void setCreateTableAllow(boolean createTableAllow) { + this.createTableAllow = createTableAllow; + } + + public boolean isDropTableAllow() { + return dropTableAllow; + } + + public void setDropTableAllow(boolean dropTableAllow) { + this.dropTableAllow = dropTableAllow; + } + + public boolean isAlterTableAllow() { + return alterTableAllow; + } + + public void setAlterTableAllow(boolean alterTableAllow) { + this.alterTableAllow = alterTableAllow; + } + + public boolean isSelectUnionCheck() { + return selectUnionCheck; + } + + public void setSelectUnionCheck(boolean selectUnionCheck) { + this.selectUnionCheck = selectUnionCheck; + } + + public boolean isSelectWhereAlwayTrueCheck() { + return selectWhereAlwayTrueCheck; + } + + public void setSelectWhereAlwayTrueCheck(boolean selectWhereAlwayTrueCheck) { + this.selectWhereAlwayTrueCheck = selectWhereAlwayTrueCheck; + } + + public boolean isSelectHavingAlwayTrueCheck() { + return selectHavingAlwayTrueCheck; + } + + public void setSelectHavingAlwayTrueCheck(boolean selectHavingAlwayTrueCheck) { + this.selectHavingAlwayTrueCheck = selectHavingAlwayTrueCheck; + } + + public boolean isDeleteAllow() { + return deleteAllow; + } + + public void setDeleteAllow(boolean deleteAllow) { + this.deleteAllow = deleteAllow; + } + + public boolean isDeleteWhereAlwayTrueCheck() { + return deleteWhereAlwayTrueCheck; + } + + public void setDeleteWhereAlwayTrueCheck(boolean deleteWhereAlwayTrueCheck) { + this.deleteWhereAlwayTrueCheck = deleteWhereAlwayTrueCheck; + } + + public boolean isDeleteWhereNoneCheck() { + return deleteWhereNoneCheck; + } + + public void setDeleteWhereNoneCheck(boolean deleteWhereNoneCheck) { + this.deleteWhereNoneCheck = deleteWhereNoneCheck; + } + + public boolean isUpdateAllow() { + return updateAllow; + } + + public void setUpdateAllow(boolean updateAllow) { + this.updateAllow = updateAllow; + } + + public boolean isUpdateWhereAlayTrueCheck() { + return updateWhereAlayTrueCheck; + } + + public void setUpdateWhereAlayTrueCheck(boolean updateWhereAlayTrueCheck) { + this.updateWhereAlayTrueCheck = updateWhereAlayTrueCheck; + } + + public boolean isUpdateWhereNoneCheck() { + return updateWhereNoneCheck; + } + + public void setUpdateWhereNoneCheck(boolean updateWhereNoneCheck) { + this.updateWhereNoneCheck = updateWhereNoneCheck; + } + + public boolean isInsertAllow() { + return insertAllow; + } + + public void setInsertAllow(boolean insertAllow) { + this.insertAllow = insertAllow; + } + + public boolean isReplaceAllow() { + return replaceAllow; + } + + public void setReplaceAllow(boolean replaceAllow) { + this.replaceAllow = replaceAllow; + } + + public boolean isSetAllow() { + return setAllow; + } + + public void setSetAllow(boolean value) { + this.setAllow = value; + } + + public boolean isMergeAllow() { + return mergeAllow; + } + + public void setMergeAllow(boolean mergeAllow) { + this.mergeAllow = mergeAllow; + } + + public boolean isMultiStatementAllow() { + return multiStatementAllow; + } + + public void setMultiStatementAllow(boolean multiStatementAllow) { + this.multiStatementAllow = multiStatementAllow; + } + + public boolean isSchemaCheck() { + return schemaCheck; + } + + public void setSchemaCheck(boolean schemaCheck) { + this.schemaCheck = schemaCheck; + } + + public boolean isTableCheck() { + return tableCheck; + } + + public void setTableCheck(boolean tableCheck) { + this.tableCheck = tableCheck; + } + + public boolean isFunctionCheck() { + return functionCheck; + } + + public void setFunctionCheck(boolean functionCheck) { + this.functionCheck = functionCheck; + } + + public boolean isVariantCheck() { + return variantCheck; + } + + public void setVariantCheck(boolean variantCheck) { + this.variantCheck = variantCheck; + } + + public boolean isObjectCheck() { + return objectCheck; + } + + public void setObjectCheck(boolean objectCheck) { + this.objectCheck = objectCheck; + } + + // /////////////////// + + public boolean isCommentAllow() { + return commentAllow; + } + + public void setCommentAllow(boolean commentAllow) { + this.commentAllow = commentAllow; + } + + public boolean isStrictSyntaxCheck() { + return strictSyntaxCheck; + } + + public void setStrictSyntaxCheck(boolean strictSyntaxCheck) { + this.strictSyntaxCheck = strictSyntaxCheck; + } + + public boolean isConstArithmeticAllow() { + return constArithmeticAllow; + } + + public void setConstArithmeticAllow(boolean constArithmeticAllow) { + this.constArithmeticAllow = constArithmeticAllow; + } + + public Set getDenyFunctions() { + return denyFunctions; + } + + public Set getDenyTables() { + return denyTables; + } + + public Set getDenySchemas() { + return denySchemas; + } + + public Set getDenyVariants() { + return denyVariants; + } + + public Set getDenyObjects() { + return denyObjects; + } + + public Set getReadOnlyTables() { + return readOnlyTables; + } + + public void addReadOnlyTable(String tableName) { + this.readOnlyTables.add(tableName); + } + + public boolean isReadOnly(String tableName) { + return this.readOnlyTables.contains(tableName); + } + + public Set getPermitFunctions() { + return permitFunctions; + } + + public Set getPermitTables() { + return permitTables; + } + + public Set getPermitSchemas() { + return permitSchemas; + } + + public Set getPermitVariants() { + return permitVariants; + } + + public boolean isMustParameterized() { + return mustParameterized; + } + + public void setMustParameterized(boolean mustParameterized) { + this.mustParameterized = mustParameterized; + } + + public boolean isDenyObjects(String name) { + if (!objectCheck) { + return false; + } + + name = WallVisitorUtils.form(name); + return denyObjects.contains(name); + } + + public boolean isDenySchema(String name) { + if (!schemaCheck) { + return false; + } + + name = WallVisitorUtils.form(name); + return this.denySchemas.contains(name); + } + + public boolean isDenyFunction(String name) { + if (!functionCheck) { + return false; + } + + name = WallVisitorUtils.form(name); + return this.denyFunctions.contains(name); + } + + public boolean isCallAllow() { + return callAllow; + } + + public void setCallAllow(boolean callAllow) { + this.callAllow = callAllow; + } + +}