22
33import org .json .JSONArray ;
44
5- import java .util .*;
5+ import java .util .ArrayList ;
6+ import java .util .List ;
7+ import java .util .Map ;
68
79public 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