From 9c5353ea981682197fef9b0cbc3076f0d49eb3b7 Mon Sep 17 00:00:00 2001 From: wenshao Date: Thu, 14 Dec 2017 17:03:13 +0800 Subject: [PATCH] bug fixed wallUpdateCheck. --- .../java/com/alibaba/druid/wall/spi/WallVisitorUtils.java | 4 +++- .../alibaba/druid/bvt/filter/wall/WallUpdateCheckTest.java | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/alibaba/druid/wall/spi/WallVisitorUtils.java b/src/main/java/com/alibaba/druid/wall/spi/WallVisitorUtils.java index b346e2b4f5..7561104ea2 100644 --- a/src/main/java/com/alibaba/druid/wall/spi/WallVisitorUtils.java +++ b/src/main/java/com/alibaba/druid/wall/spi/WallVisitorUtils.java @@ -939,7 +939,9 @@ public class WallVisitorUtils { filterValues.add(((SQLValuableExpr) expr).getValue()); } boolean validate = updateCheckHandler.check(tableName, checkColumn, setValue, filterValues); - visitor.addViolation(new IllegalSQLObjectViolation(ErrorCode.UPDATE_CHECK_FAIL, "update check failed.", visitor.toSQL(x))); + if (!validate) { + visitor.addViolation(new IllegalSQLObjectViolation(ErrorCode.UPDATE_CHECK_FAIL, "update check failed.", visitor.toSQL(x))); + } } else { visitor.addWallUpdateCheckItem(new WallUpdateCheckItem(tableName, checkColumn, valueExpr, filterValueExprList)); } diff --git a/src/test/java/com/alibaba/druid/bvt/filter/wall/WallUpdateCheckTest.java b/src/test/java/com/alibaba/druid/bvt/filter/wall/WallUpdateCheckTest.java index e86de96985..71a548ef39 100644 --- a/src/test/java/com/alibaba/druid/bvt/filter/wall/WallUpdateCheckTest.java +++ b/src/test/java/com/alibaba/druid/bvt/filter/wall/WallUpdateCheckTest.java @@ -46,7 +46,7 @@ public class WallUpdateCheckTest extends TestCase { }); { WallCheckResult result = wallProvider.check("update t_orders set status = 3 where id = 3 and status = 4"); - assertTrue(result.getViolations().size() > 0); + assertTrue(result.getViolations().size() == 0); } assertEquals(0, wallProvider.getWhiteListHitCount()); assertEquals(0, wallProvider.getBlackListHitCount());