mirror of
https://github.com/overcuriousity/autopsy-flatpak.git
synced 2025-07-17 02:07:42 +00:00
Merge pull request #2123 from BasisOlivers/aut-2100
Cleaned up reports code to only allow one report module at a time.
This commit is contained in:
commit
f2103cc289
@ -18,48 +18,45 @@
|
||||
*/
|
||||
package org.sleuthkit.autopsy.modules.stix;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.List;
|
||||
import java.util.logging.Level;
|
||||
import java.io.BufferedWriter;
|
||||
import java.io.File;
|
||||
import java.io.FileWriter;
|
||||
import java.io.IOException;
|
||||
import java.util.Arrays;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.logging.Level;
|
||||
import javax.swing.JPanel;
|
||||
import javax.xml.bind.JAXBContext;
|
||||
import javax.xml.bind.JAXBException;
|
||||
import javax.xml.bind.Unmarshaller;
|
||||
import javax.xml.namespace.QName;
|
||||
|
||||
import org.mitre.cybox.cybox_2.ObjectType;
|
||||
import org.mitre.cybox.cybox_2.Observable;
|
||||
import org.mitre.cybox.cybox_2.ObservableCompositionType;
|
||||
import org.mitre.cybox.cybox_2.OperatorTypeEnum;
|
||||
import org.mitre.cybox.objects.AccountObjectType;
|
||||
import org.mitre.cybox.objects.Address;
|
||||
import org.mitre.cybox.objects.DomainName;
|
||||
import org.mitre.cybox.objects.EmailMessage;
|
||||
import org.mitre.cybox.objects.FileObjectType;
|
||||
import org.mitre.cybox.objects.SystemObjectType;
|
||||
import org.mitre.cybox.objects.URIObjectType;
|
||||
import org.mitre.cybox.objects.URLHistory;
|
||||
import org.mitre.cybox.objects.WindowsNetworkShare;
|
||||
import org.mitre.cybox.objects.WindowsRegistryKey;
|
||||
import org.mitre.stix.common_1.IndicatorBaseType;
|
||||
import org.mitre.stix.indicator_2.Indicator;
|
||||
import org.mitre.stix.stix_1.STIXPackage;
|
||||
|
||||
import org.sleuthkit.autopsy.coreutils.Logger;
|
||||
import org.sleuthkit.autopsy.report.GeneralReportModule;
|
||||
import org.openide.util.NbBundle;
|
||||
import org.sleuthkit.autopsy.report.ReportProgressPanel;
|
||||
import org.sleuthkit.datamodel.TskCoreException;
|
||||
|
||||
import org.mitre.cybox.cybox_2.OperatorTypeEnum;
|
||||
import org.mitre.cybox.objects.Address;
|
||||
import org.mitre.cybox.objects.FileObjectType;
|
||||
import org.mitre.cybox.objects.URIObjectType;
|
||||
import org.mitre.cybox.objects.EmailMessage;
|
||||
import org.mitre.cybox.objects.WindowsNetworkShare;
|
||||
import org.mitre.cybox.objects.AccountObjectType;
|
||||
import org.mitre.cybox.objects.SystemObjectType;
|
||||
import org.mitre.cybox.objects.URLHistory;
|
||||
import org.mitre.cybox.objects.DomainName;
|
||||
import org.mitre.cybox.objects.WindowsRegistryKey;
|
||||
import org.sleuthkit.autopsy.coreutils.Logger;
|
||||
import org.sleuthkit.autopsy.coreutils.MessageNotifyUtil;
|
||||
import org.sleuthkit.autopsy.coreutils.ModuleSettings;
|
||||
import org.sleuthkit.autopsy.report.GeneralReportModule;
|
||||
import org.sleuthkit.autopsy.report.ReportProgressPanel;
|
||||
import org.sleuthkit.autopsy.report.ReportProgressPanel.ReportStatus;
|
||||
import org.sleuthkit.datamodel.TskCoreException;
|
||||
|
||||
/**
|
||||
*
|
||||
@ -180,6 +177,9 @@ public class STIXReportModule implements GeneralReportModule {
|
||||
|
||||
// Process each STIX file
|
||||
for (File file : stixFiles) {
|
||||
if (progressPanel.getStatus() == ReportStatus.CANCELED) {
|
||||
return;
|
||||
}
|
||||
try {
|
||||
processFile(file.getAbsolutePath(), progressPanel);
|
||||
} catch (TskCoreException ex) {
|
||||
|
File diff suppressed because it is too large
Load Diff
0
Core/src/org/sleuthkit/autopsy/report/ReportKML.java
Normal file → Executable file
0
Core/src/org/sleuthkit/autopsy/report/ReportKML.java
Normal file → Executable file
@ -24,9 +24,7 @@ import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import static java.util.Collections.swap;
|
||||
import java.util.Comparator;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.logging.Level;
|
||||
import javax.swing.JList;
|
||||
import javax.swing.JPanel;
|
||||
@ -137,8 +135,8 @@ final class ReportVisualPanel1 extends JPanel implements ListSelectionListener {
|
||||
|
||||
// Make sure that the report module has a valid non-null name.
|
||||
private boolean moduleIsValid(ReportModule module) {
|
||||
return module.getName() != null && !module.getName().isEmpty()
|
||||
&& module.getRelativeFilePath() != null;
|
||||
return module.getName() != null && !module.getName().isEmpty()
|
||||
&& module.getRelativeFilePath() != null;
|
||||
}
|
||||
|
||||
private void popupWarning(ReportModule module) {
|
||||
@ -163,13 +161,12 @@ final class ReportVisualPanel1 extends JPanel implements ListSelectionListener {
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
Map<TableReportModule, Boolean> getTableModuleStates() {
|
||||
Map<TableReportModule, Boolean> reportModuleStates = new LinkedHashMap<>();
|
||||
TableReportModule getTableModule() {
|
||||
ReportModule mod = getSelectedModule();
|
||||
if (tableModules.contains(mod)) {
|
||||
reportModuleStates.put((TableReportModule) mod, Boolean.TRUE);
|
||||
return (TableReportModule) mod;
|
||||
}
|
||||
return reportModuleStates;
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -177,13 +174,12 @@ final class ReportVisualPanel1 extends JPanel implements ListSelectionListener {
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
Map<GeneralReportModule, Boolean> getGeneralModuleStates() {
|
||||
Map<GeneralReportModule, Boolean> reportModuleStates = new LinkedHashMap<>();
|
||||
GeneralReportModule getGeneralModule() {
|
||||
ReportModule mod = getSelectedModule();
|
||||
if (generalModules.contains(mod)) {
|
||||
reportModuleStates.put((GeneralReportModule) mod, Boolean.TRUE);
|
||||
return (GeneralReportModule) mod;
|
||||
}
|
||||
return reportModuleStates;
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -191,13 +187,12 @@ final class ReportVisualPanel1 extends JPanel implements ListSelectionListener {
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
Map<FileReportModule, Boolean> getFileModuleStates() {
|
||||
Map<FileReportModule, Boolean> reportModuleStates = new LinkedHashMap<>();
|
||||
FileReportModule getFileModule() {
|
||||
ReportModule mod = getSelectedModule();
|
||||
if (fileModules.contains(mod)) {
|
||||
reportModuleStates.put((FileReportModule) mod, Boolean.TRUE);
|
||||
return (FileReportModule) mod;
|
||||
}
|
||||
return reportModuleStates;
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -1,4 +1,4 @@
|
||||
/*
|
||||
/*
|
||||
*
|
||||
* Autopsy Forensic Browser
|
||||
*
|
||||
@ -65,13 +65,17 @@ public final class ReportWizardAction extends CallableSystemAction implements Pr
|
||||
wiz.setTitle(NbBundle.getMessage(ReportWizardAction.class, "ReportWizardAction.reportWiz.title"));
|
||||
if (DialogDisplayer.getDefault().notify(wiz) == WizardDescriptor.FINISH_OPTION) {
|
||||
@SuppressWarnings("unchecked")
|
||||
ReportGenerator generator = new ReportGenerator((Map<TableReportModule, Boolean>) wiz.getProperty("tableModuleStates"), //NON-NLS
|
||||
(Map<GeneralReportModule, Boolean>) wiz.getProperty("generalModuleStates"), //NON-NLS
|
||||
(Map<FileReportModule, Boolean>) wiz.getProperty("fileModuleStates")); //NON-NLS
|
||||
generator.generateTableReports((Map<BlackboardArtifact.Type, Boolean>) wiz.getProperty("artifactStates"), (Map<String, Boolean>) wiz.getProperty("tagStates")); //NON-NLS
|
||||
generator.generateFileListReports((Map<FileReportDataTypes, Boolean>) wiz.getProperty("fileReportOptions")); //NON-NLS
|
||||
generator.generateGeneralReports();
|
||||
generator.displayProgressPanels();
|
||||
ReportGenerator generator = new ReportGenerator(); //NON-NLS
|
||||
TableReportModule tableReport = (TableReportModule) wiz.getProperty("tableModule");
|
||||
GeneralReportModule generalReport = (GeneralReportModule) wiz.getProperty("generalModule");
|
||||
FileReportModule fileReport = (FileReportModule) wiz.getProperty("fileModule");
|
||||
if (tableReport != null) {
|
||||
generator.generateTableReport(tableReport, (Map<BlackboardArtifact.Type, Boolean>) wiz.getProperty("artifactStates"), (Map<String, Boolean>) wiz.getProperty("tagStates")); //NON-NLS
|
||||
} else if (generalReport != null) {
|
||||
generator.generateGeneralReport(generalReport);
|
||||
} else if (fileReport != null) {
|
||||
generator.generateFileListReport(fileReport, (Map<FileReportDataTypes, Boolean>) wiz.getProperty("fileReportOptions")); //NON-NLS
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -21,7 +21,6 @@ package org.sleuthkit.autopsy.report;
|
||||
import java.awt.event.ActionEvent;
|
||||
import java.awt.event.ActionListener;
|
||||
import java.util.Collection;
|
||||
import java.util.Map;
|
||||
import java.util.prefs.Preferences;
|
||||
import javax.swing.JButton;
|
||||
import javax.swing.event.ChangeListener;
|
||||
@ -108,17 +107,17 @@ class ReportWizardPanel1 implements WizardDescriptor.FinishablePanel<WizardDescr
|
||||
|
||||
@Override
|
||||
public void storeSettings(WizardDescriptor wiz) {
|
||||
Map<TableReportModule, Boolean> tables = getComponent().getTableModuleStates();
|
||||
Map<GeneralReportModule, Boolean> generals = getComponent().getGeneralModuleStates();
|
||||
wiz.putProperty("tableModuleStates", tables); //NON-NLS
|
||||
wiz.putProperty("generalModuleStates", generals); //NON-NLS
|
||||
wiz.putProperty("fileModuleStates", getComponent().getFileModuleStates()); //NON-NLS
|
||||
TableReportModule module = getComponent().getTableModule();
|
||||
GeneralReportModule general = getComponent().getGeneralModule();
|
||||
wiz.putProperty("tableModule", module); //NON-NLS
|
||||
wiz.putProperty("generalModule", general); //NON-NLS
|
||||
wiz.putProperty("fileModule", getComponent().getFileModule()); //NON-NLS
|
||||
|
||||
// Store preferences that WizardIterator will use to determine what
|
||||
// panels need to be shown
|
||||
Preferences prefs = NbPreferences.forModule(ReportWizardPanel1.class);
|
||||
prefs.putBoolean("tableModule", any(tables.values())); //NON-NLS
|
||||
prefs.putBoolean("generalModule", any(generals.values())); //NON-NLS
|
||||
prefs.putBoolean("tableModule", module != null); //NON-NLS
|
||||
prefs.putBoolean("generalModule", general != null); //NON-NLS
|
||||
}
|
||||
|
||||
/**
|
||||
|
1680
Core/src/org/sleuthkit/autopsy/report/TableReportGenerator.java
Executable file
1680
Core/src/org/sleuthkit/autopsy/report/TableReportGenerator.java
Executable file
File diff suppressed because it is too large
Load Diff
Loading…
x
Reference in New Issue
Block a user