Skip to content

Commit af15cba

Browse files
committed
refactor:重构了服务端配置存储的方式,以及将匹配方式从for循环改为stream流
1 parent c243df2 commit af15cba

File tree

1 file changed

+18
-5
lines changed

1 file changed

+18
-5
lines changed

dongtai-common/src/main/java/io/dongtai/iast/common/config/RequestDenyList.java

Lines changed: 18 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,12 @@
22

33
import org.json.JSONArray;
44

5-
import java.util.*;
5+
import java.util.ArrayList;
6+
import java.util.List;
7+
import java.util.Map;
68

79
public class RequestDenyList {
8-
private final List<List<RequestDeny>> denies = new ArrayList<List<RequestDeny>>();
10+
private final List<RequestDeny> denies = new ArrayList<RequestDeny>();
911

1012
public static RequestDenyList parse(JSONArray config) {
1113
if (config == null || config.length() == 0) {
@@ -29,7 +31,7 @@ public static RequestDenyList parse(JSONArray config) {
2931
andList.add(requestDeny);
3032
}
3133
if (!andList.isEmpty()) {
32-
denyList.denies.add(andList);
34+
denyList.denies.addAll(andList);
3335
}
3436
}
3537

@@ -40,10 +42,21 @@ public static RequestDenyList parse(JSONArray config) {
4042
}
4143

4244
public void addRule(List<RequestDeny> requestDenies) {
43-
this.denies.add(requestDenies);
45+
this.denies.addAll(requestDenies);
4446
}
4547

48+
/**
49+
*
50+
* @param url 请求URL
51+
* @param headers 请求头集合
52+
* @return true 成功匹配 false 未匹配
53+
*/
4654
public boolean match(String url, Map<String, String> headers) {
55+
return denies.stream().anyMatch(requestDeny -> {
56+
return requestDeny.match(url, headers); // 匹配到条件,提前终止循环
57+
});
58+
}
59+
/* public boolean match(String url, Map<String, String> headers) {
4760
boolean matched = false;
4861
for (List<RequestDeny> denyList : this.denies) {
4962
boolean subHasNoMatch = false;
@@ -60,7 +73,7 @@ public boolean match(String url, Map<String, String> headers) {
6073
}
6174
}
6275
return matched;
63-
}
76+
}*/
6477

6578
@Override
6679
public String toString() {

0 commit comments

Comments
 (0)