Skip to content

Commit 49eeeac

Browse files
committed
Use the Alerts from the Alert tree for generation of reports
1 parent 5f72b0e commit 49eeeac

File tree

2 files changed

+23
-1
lines changed

2 files changed

+23
-1
lines changed

src/org/zaproxy/zap/extension/alert/AlertTreeModel.java

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,10 @@
2020
package org.zaproxy.zap.extension.alert;
2121

2222
import java.awt.EventQueue;
23+
import java.util.ArrayList;
2324
import java.util.Comparator;
25+
import java.util.Enumeration;
26+
import java.util.List;
2427

2528
import javax.swing.tree.DefaultTreeModel;
2629

@@ -196,6 +199,25 @@ public synchronized void deletePath(Alert alert) {
196199
this.nodeChanged(parent);
197200
}
198201
}
202+
203+
public List<Alert> getAlerts(String cleanNodeName) {
204+
ArrayList<Alert> alerts = new ArrayList<>();
205+
@SuppressWarnings("unchecked")
206+
Enumeration<AlertNode> groupAlertNodes = ((AlertNode) getRoot()).children();
207+
while (groupAlertNodes.hasMoreElements()) {
208+
AlertNode groupAlertNode = groupAlertNodes.nextElement();
209+
@SuppressWarnings("unchecked")
210+
Enumeration<AlertNode> alertNodes = groupAlertNode.children();
211+
while (alertNodes.hasMoreElements()) {
212+
AlertNode alertNode = alertNodes.nextElement();
213+
if (alertNode.getUserObject().getHistoryRef().getURI().toString().startsWith(cleanNodeName)) {
214+
alerts.add(alertNode.getUserObject());
215+
}
216+
}
217+
}
218+
alerts.trimToSize();
219+
return alerts;
220+
}
199221

200222
private static class GroupAlertChildNodeComparator implements Comparator<AlertNode> {
201223

src/org/zaproxy/zap/extension/alert/ExtensionAlert.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -662,7 +662,7 @@ public List<Alert> getAllAlerts() {
662662
public String getXml(SiteNode site) {
663663
StringBuilder xml = new StringBuilder();
664664
xml.append("<alerts>");
665-
List<Alert> alerts = site.getAlerts();
665+
List<Alert> alerts = treeModel.getAlerts(site.getCleanNodeName());
666666
SortedSet<String> handledAlerts = new TreeSet<String>();
667667

668668
for (int i=0; i < alerts.size(); i++) {

0 commit comments

Comments
 (0)