improve wall filter

This commit is contained in:
wenshao
2013-04-08 12:54:16 +08:00
parent de60312713
commit 866ddaaaed
12 changed files with 112 additions and 10 deletions
@@ -32,7 +32,7 @@ public class WallStatTest_blackList_1 extends TestCase {
Assert.assertEquals(0, provider.getBlackListHitCount());
Assert.assertEquals(0, provider.getWhiteListHitCount());
Assert.assertEquals(0, provider.getWhiteList().size());
Assert.assertEquals(500, provider.getBlackList().size());
Assert.assertEquals(100, provider.getBlackList().size());
Assert.assertEquals(1001, provider.getCheckCount());
}
@@ -1,5 +1,6 @@
package com.alibaba.druid.bvt.filter.wall;
import java.util.Collection;
import java.util.Map;
import junit.framework.TestCase;
@@ -26,26 +27,39 @@ public class WallStatTest_statMap extends TestCase {
WallProvider providerA = new MySqlWallProvider();
{
String sql = "select * from t where len(fname) = 1";
Assert.assertTrue(providerA.checkValid(sql));
String sql = "select * from t where len(fname) = 1 OR 1 = 1";
Assert.assertFalse(providerA.checkValid(sql));
}
WallProvider providerB = new MySqlWallProvider();
{
String sql = "select * from t where len(fname) = 2";
Assert.assertTrue(providerB.checkValid(sql));
String sql = "select * from t where len(fname) = 2 OR 1 = 1";
Assert.assertFalse(providerB.checkValid(sql));
}
WallProvider providerC = new MySqlWallProvider();
{
String sql = "select * from t where len(fname) = 2 OR 1 = 1";
Assert.assertFalse(providerC.checkValid(sql));
}
Map<String, Object> statMapA = providerA.getStatsMap();
Map<String, Object> statMapB = providerB.getStatsMap();
Map<String, Object> statMapC = providerC.getStatsMap();
System.out.println(JSONUtils.toJSONString(statMapA));
System.out.println(JSONUtils.toJSONString(statMapB));
System.out.println(JSONUtils.toJSONString(statMapC));
Map<String, Object> statMapMerged = DruidStatManagerFacade.mergWallStat(statMapA, statMapB);
System.out.println(JSONUtils.toJSONString(statMapMerged));
Assert.assertEquals(2L, statMapMerged.get("checkCount"));
Assert.assertEquals(2, ((Collection<String>) statMapMerged.get("blackList")).size());
statMapMerged = DruidStatManagerFacade.mergWallStat(statMapMerged, statMapC);
System.out.println(JSONUtils.toJSONString(statMapMerged));
Assert.assertEquals(2, ((Collection<String>) statMapMerged.get("blackList")).size());
}
}