@Override
public void onSuccess(JSONObject data) {
JSONObject rules = data.getJSONObject("rules");
Iterator<String> ruleKeys = rules.keys();
DefaultTableModel ruleModel = tabComponent.getRulesTable().getDefaultModel();
ruleModel.setRowCount(0);
while (ruleKeys.hasNext()) {
String key = ruleKeys.next();
final JSONObject v = rules.getJSONObject(key);
ruleModel.addRow(new Object[]{key, v.getString("regex"), v.getString("alias"), v.getString("type")});
try {
Pattern pattern = Pattern.compile(v.getString("regex"));
System.out.println("[NEW] " + pattern);
burpExtender.getMatchRules().put(key, new HashMap<String, String>() {{
put("regex", v.getString("regex"));
put("alias", v.getString("alias"));
put("type", v.getString("type"));
}});
burpExtender.addMatchRule(new MatchRule(pattern, 1, key, ScanIssueSeverity.LOW, ScanIssueConfidence.CERTAIN));
} catch (PatternSyntaxException pse) {
callbacks.printError("Unable to compile pattern: " + v.getString("regex") + " for: " + key);
burpExtender.printStackTrace(pse);
}
}
}
});