added gpx module to pipeline config and place autopsy modules before third party modules

This commit is contained in:
Greg DiCristofaro 2020-06-01 13:02:38 -04:00
parent bd297c54da
commit 003d0c5e8b
2 changed files with 32 additions and 9 deletions

View File

@ -33,6 +33,7 @@ import javax.swing.JOptionPane;
import org.netbeans.api.progress.ProgressHandle; import org.netbeans.api.progress.ProgressHandle;
import org.openide.util.Cancellable; import org.openide.util.Cancellable;
import org.openide.util.NbBundle; import org.openide.util.NbBundle;
import org.openide.util.Pair;
import org.openide.windows.WindowManager; import org.openide.windows.WindowManager;
import org.sleuthkit.autopsy.casemodule.Case; import org.sleuthkit.autopsy.casemodule.Case;
import org.sleuthkit.autopsy.casemodule.NoCurrentCaseException; import org.sleuthkit.autopsy.casemodule.NoCurrentCaseException;
@ -57,7 +58,8 @@ import org.sleuthkit.autopsy.python.FactoryClassNameNormalizer;
* it. * it.
*/ */
public final class DataSourceIngestJob { public final class DataSourceIngestJob {
private static String AUTOPSY_MODULE_PREFIX = "org.sleuthkit.autopsy";
private static final Logger logger = Logger.getLogger(DataSourceIngestJob.class.getName()); private static final Logger logger = Logger.getLogger(DataSourceIngestJob.class.getName());
/** /**
@ -215,6 +217,30 @@ public final class DataSourceIngestJob {
this.createTime = new Date().getTime(); this.createTime = new Date().getTime();
this.createIngestPipelines(); this.createIngestPipelines();
} }
/**
* Adds ingest modules to a list with autopsy modules first and third party modules next.
* @param dest The destination for the modules to be added.
* @param src A map of fully qualified class name mapped to the IngestModuleTemplate.
*/
private static void addOrdered(final List<IngestModuleTemplate> dest, final Map<String, IngestModuleTemplate> src) {
final List<IngestModuleTemplate> autopsyModules = new ArrayList<>();
final List<IngestModuleTemplate> thirdPartyModules = new ArrayList<>();
src.entrySet().stream().forEach((templateEntry) -> {
if (templateEntry.getKey().startsWith(AUTOPSY_MODULE_PREFIX)) {
autopsyModules.add(templateEntry.getValue());
}
else {
thirdPartyModules.add(templateEntry.getValue());
}
});
dest.addAll(autopsyModules);
dest.addAll(thirdPartyModules);
}
/** /**
* Creates the file and data source ingest pipelines. * Creates the file and data source ingest pipelines.
@ -250,13 +276,9 @@ public final class DataSourceIngestJob {
* configuration to an appropriate pipeline - either the first stage * configuration to an appropriate pipeline - either the first stage
* data source ingest pipeline or the file ingest pipeline. * data source ingest pipeline or the file ingest pipeline.
*/ */
for (IngestModuleTemplate template : dataSourceModuleTemplates.values()) { addOrdered(firstStageDataSourceModuleTemplates, dataSourceModuleTemplates);
firstStageDataSourceModuleTemplates.add(template); addOrdered(fileIngestModuleTemplates, fileModuleTemplates);
}
for (IngestModuleTemplate template : fileModuleTemplates.values()) {
fileIngestModuleTemplates.add(template);
}
/** /**
* Construct the data source ingest pipelines. * Construct the data source ingest pipelines.
*/ */

View File

@ -16,7 +16,8 @@ Contains only the core ingest modules that ship with Autopsy -->
<MODULE>org.sleuthkit.autopsy.thunderbirdparser.EmailParserModuleFactory</MODULE> <MODULE>org.sleuthkit.autopsy.thunderbirdparser.EmailParserModuleFactory</MODULE>
<MODULE>org.sleuthkit.autopsy.modules.fileextmismatch.FileExtMismatchDetectorModuleFactory</MODULE> <MODULE>org.sleuthkit.autopsy.modules.fileextmismatch.FileExtMismatchDetectorModuleFactory</MODULE>
<MODULE>org.sleuthkit.autopsy.modules.interestingitems.InterestingItemsIngestModuleFactory</MODULE> <MODULE>org.sleuthkit.autopsy.modules.interestingitems.InterestingItemsIngestModuleFactory</MODULE>
<MODULE>org.sleuthkit.autopsy.modules.photoreccarver.PhotoRecCarverIngestModuleFactory</MODULE> <MODULE>org.sleuthkit.autopsy.modules.photoreccarver.PhotoRecCarverIngestModuleFactory</MODULE>
<MODULE>org.sleuthkit.autopsy.modules.GPX_Module.GPXParserFileIngestModuleFactory</MODULE>
</PIPELINE> </PIPELINE>
<PIPELINE type="ImageAnalysisStageTwo"> <PIPELINE type="ImageAnalysisStageTwo">