mirror of
https://github.com/alibaba/druid.git
synced 2023-03-04 19:17:16 +00:00
improve wall filter
This commit is contained in:
@@ -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());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user