This commit is contained in:
黑昼
2017-12-14 20:07:14 +08:00
parent 5170a3b944
commit 1db2c5b28c
2 changed files with 18 additions and 2 deletions
+1 -1
View File
@@ -3,7 +3,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.7-preview_0</version>
<version>1.1.7-preview_10</version>
<packaging>jar</packaging>
<name>druid</name>
@@ -31,8 +31,10 @@ import java.util.concurrent.locks.Lock;
import java.util.concurrent.locks.ReentrantReadWriteLock;
import com.alibaba.druid.sql.SQLUtils;
import com.alibaba.druid.sql.ast.SQLExpr;
import com.alibaba.druid.sql.ast.SQLName;
import com.alibaba.druid.sql.ast.SQLStatement;
import com.alibaba.druid.sql.ast.statement.SQLUpdateSetItem;
import com.alibaba.druid.sql.ast.statement.SQLUpdateStatement;
import com.alibaba.druid.sql.dialect.mysql.ast.statement.MySqlHintStatement;
import com.alibaba.druid.sql.parser.Lexer;
@@ -48,6 +50,9 @@ import com.alibaba.druid.wall.spi.WallVisitorUtils;
import com.alibaba.druid.wall.violation.ErrorCode;
import com.alibaba.druid.wall.violation.IllegalSQLObjectViolation;
import com.alibaba.druid.wall.violation.SyntaxErrorViolation;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.BeanWrapper;
import org.springframework.beans.BeanWrapperImpl;
public abstract class WallProvider {
@@ -686,8 +691,16 @@ public abstract class WallProvider {
Set<String> updateCheckColumns = config.getUpdateCheckTable(tableName);
if (updateCheckColumns != null && updateCheckColumns.size() > 0) {
updateCheckHandlerEnable = true;
break;
}
for(SQLUpdateSetItem item : ((SQLUpdateStatement) stmt).getItems()){
SQLExpr column = item.getColumn();
BeanWrapper beanWrapper = new BeanWrapperImpl(column);
Object name = beanWrapper.getPropertyValue("name");
if(name != null && updateCheckColumns.contains(name.toString().toLowerCase())){
updateCheckHandler.check(tableName, name.toString().toLowerCase(), item.)
}
}
}
}
}
@@ -706,6 +719,9 @@ public abstract class WallProvider {
sqlStat = addWhiteSql(sql, tableStat, context.getFunctionStats(), syntaxError);
}
}
if(sqlStat == null && updateCheckHandlerEnable){
sqlStat = new WallSqlStat(tableStat, context.getFunctionStats(), syntaxError);
}
Map<String, WallSqlTableStat> tableStats = null;
Map<String, WallSqlFunctionStat> functionStats = null;