Skip to content

Commit 580c213

Browse files
ayushaga14ag060
authored andcommitted
save and parse agg rules
1 parent 32c14a6 commit 580c213

File tree

6 files changed

+37
-16
lines changed

6 files changed

+37
-16
lines changed

apps/threat-detection/src/main/java/com/akto/threat/detection/tasks/MaliciousTrafficDetectorTask.java

+4-4
Original file line numberDiff line numberDiff line change
@@ -186,10 +186,10 @@ private void processRecord(HttpResponseParam record) throws Exception {
186186
// we still push malicious requests to kafka
187187

188188
// todo: modify fetch yaml and read aggregate rules from it
189-
List<Rule> rules = new ArrayList<>();
190-
rules.add(new Rule("Lfi Rule 1", new Condition(10, 10)));
191-
AggregationRules aggRules = new AggregationRules();
192-
aggRules.setRule(rules);
189+
// List<Rule> rules = new ArrayList<>();
190+
// rules.add(new Rule("Lfi Rule 1", new Condition(10, 10)));
191+
AggregationRules aggRules = apiFilter.getAggregationRules();
192+
//aggRules.setRule(rules);
193193

194194
boolean isAggFilter = aggRules != null && !aggRules.getRule().isEmpty();
195195

libs/dao/src/main/java/com/akto/DaoInit.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -413,4 +413,4 @@ public static void createIndices() {
413413
VulnerableTestingRunResultDao.instance.createIndicesIfAbsent();
414414
}
415415

416-
}
416+
}

libs/dao/src/main/java/com/akto/dao/api_protection_parse_layer/AggregationLayerParser.java

+1-2
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
import com.fasterxml.jackson.databind.ObjectMapper;
1010

1111
public class AggregationLayerParser {
12-
12+
1313
ObjectMapper objectMapper = new ObjectMapper();
1414

1515
public AggregationLayerParser() {
@@ -30,7 +30,6 @@ public AggregationRules parse(Map<String, Object> aggregationRules) throws Excep
3030
} catch (Exception e) {
3131
throw e;
3232
}
33-
3433
return aggRules;
3534
}
3635

libs/dao/src/main/java/com/akto/dao/monitoring/FilterConfigYamlParser.java

+18-4
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,9 @@
44
import java.util.List;
55
import java.util.Map;
66

7+
import com.akto.dao.api_protection_parse_layer.AggregationLayerParser;
78
import com.akto.dao.test_editor.filter.ConfigParser;
9+
import com.akto.dto.api_protection_parse_layer.AggregationRules;
810
import com.akto.dto.monitoring.FilterConfig;
911
import com.akto.dto.test_editor.ConfigParserResult;
1012
import com.akto.dto.test_editor.ExecutorConfigParserResult;
@@ -36,15 +38,15 @@ public static FilterConfig parseConfig(Map<String, Object> config,boolean should
3638
Object filterMap = config.get(FilterConfig.FILTER);
3739
if (filterMap == null) {
3840
isFilterError = true;
39-
filterConfig = new FilterConfig(id, null, null);
41+
filterConfig = new FilterConfig(id, null, null, null);
4042
}
4143

4244
ConfigParser configParser = new ConfigParser();
4345
ConfigParserResult filters = configParser.parse(filterMap);
4446
if (filters == null) {
4547
// todo: throw error
4648
isFilterError = true;
47-
filterConfig = new FilterConfig(id, null, null);
49+
filterConfig = new FilterConfig(id, null, null, null);
4850
}
4951

5052
Map<String, List<String>> wordListMap = new HashMap<>();
@@ -54,10 +56,10 @@ public static FilterConfig parseConfig(Map<String, Object> config,boolean should
5456
}
5557
} catch (Exception e) {
5658
isFilterError = true;
57-
filterConfig = new FilterConfig(id, filters, null);
59+
filterConfig = new FilterConfig(id, filters, null, null);
5860
}
5961
if(!isFilterError){
60-
filterConfig = new FilterConfig(id, filters, wordListMap);
62+
filterConfig = new FilterConfig(id, filters, wordListMap, null);
6163
}
6264

6365
if(shouldParseExecutor){
@@ -70,6 +72,18 @@ public static FilterConfig parseConfig(Map<String, Object> config,boolean should
7072
filterConfig.setExecutor(executorConfigParserResult);
7173
}
7274

75+
AggregationLayerParser parser = new AggregationLayerParser();
76+
AggregationRules aggRules = null;
77+
try {
78+
aggRules = parser.parse(config);
79+
} catch (Exception e) {
80+
// TODO: handle exception
81+
}
82+
83+
if (filterConfig != null) {
84+
filterConfig.setAggregationRules(aggRules);
85+
}
86+
7387
return filterConfig;
7488
}
7589

libs/dao/src/main/java/com/akto/dto/api_protection_parse_layer/Rule.java

+1-4
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ public class Rule {
77

88
public Rule() {
99
}
10-
10+
1111
public Rule(String name, Condition condition) {
1212
this.name = name;
1313
this.condition = condition;
@@ -25,7 +25,4 @@ public Condition getCondition() {
2525
public void setCondition(Condition condition) {
2626
this.condition = condition;
2727
}
28-
29-
30-
3128
}

libs/dao/src/main/java/com/akto/dto/monitoring/FilterConfig.java

+12-1
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import java.util.List;
55
import java.util.Map;
66

7+
import com.akto.dto.api_protection_parse_layer.AggregationRules;
78
import com.akto.dto.test_editor.ConfigParserResult;
89
import com.akto.dto.test_editor.ExecutorConfigParserResult;
910

@@ -22,6 +23,7 @@ public class FilterConfig {
2223
private String author;
2324
public static final String _CONTENT = "content";
2425
private String content;
26+
private AggregationRules aggregationRules;
2527

2628
public static final String DEFAULT_ALLOW_FILTER = "DEFAULT_ALLOW_FILTER";
2729
public static final String DEFAULT_BLOCK_FILTER = "DEFAULT_BLOCK_FILTER";
@@ -32,10 +34,11 @@ public enum FILTER_TYPE{
3234

3335
private ExecutorConfigParserResult executor;
3436

35-
public FilterConfig(String id, ConfigParserResult filter, Map<String, List<String>> wordLists) {
37+
public FilterConfig(String id, ConfigParserResult filter, Map<String, List<String>> wordLists, AggregationRules aggregationRules) {
3638
this.id = id;
3739
this.filter = filter;
3840
this.wordLists = wordLists;
41+
this.aggregationRules = aggregationRules;
3942
}
4043

4144
public FilterConfig() {
@@ -114,4 +117,12 @@ public ExecutorConfigParserResult getExecutor() {
114117
public void setExecutor(ExecutorConfigParserResult executor) {
115118
this.executor = executor;
116119
}
120+
121+
public AggregationRules getAggregationRules() {
122+
return aggregationRules;
123+
}
124+
125+
public void setAggregationRules(AggregationRules aggregationRules) {
126+
this.aggregationRules = aggregationRules;
127+
}
117128
}

0 commit comments

Comments
 (0)