mirror of
https://github.com/overcuriousity/autopsy-flatpak.git
synced 2025-07-12 16:06:15 +00:00
Started updating to standardize using extension set.
This commit is contained in:
parent
8cbbd00d15
commit
85b9694659
@ -19,9 +19,8 @@
|
||||
package org.sleuthkit.autopsy.modules.fileextmismatch;
|
||||
|
||||
import java.awt.event.ActionEvent;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.HashMap;
|
||||
import java.util.Set;
|
||||
import java.util.logging.Level;
|
||||
import javax.swing.AbstractAction;
|
||||
import javax.swing.JOptionPane;
|
||||
@ -51,13 +50,13 @@ class AddFileExtensionAction extends AbstractAction {
|
||||
@Override
|
||||
@Messages({"AddFileExtensionAction.writeError.message=Could not write file extension settings."})
|
||||
public void actionPerformed(ActionEvent event) {
|
||||
HashMap<String, String[]> editableMap;
|
||||
HashMap<String, Set<String>> editableMap;
|
||||
editableMap = settings.getMimeTypeToExtsMap();
|
||||
ArrayList<String> editedExtensions = new ArrayList<>(Arrays.asList(editableMap.get(mimeTypeStr)));
|
||||
Set<String> editedExtensions = editableMap.get(mimeTypeStr);
|
||||
editedExtensions.add(extStr);
|
||||
|
||||
// Old array will be replaced by new array for this key
|
||||
editableMap.put(mimeTypeStr, editedExtensions.toArray(new String[0]));
|
||||
editableMap.put(mimeTypeStr, editedExtensions);
|
||||
|
||||
try {
|
||||
FileExtMismatchSettings.writeSettings(new FileExtMismatchSettings(editableMap));
|
||||
|
@ -19,10 +19,10 @@
|
||||
package org.sleuthkit.autopsy.modules.fileextmismatch;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collection;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
import java.util.logging.Level;
|
||||
import javax.swing.Action;
|
||||
import javax.swing.JOptionPane;
|
||||
@ -87,12 +87,12 @@ public class FileExtMismatchContextMenuActionsProvider implements ContextMenuAct
|
||||
extStr, mimeTypeStr);
|
||||
|
||||
// Check if already added
|
||||
HashMap<String, String[]> editableMap;
|
||||
HashMap<String, Set<String>> editableMap;
|
||||
try {
|
||||
FileExtMismatchSettings settings = FileExtMismatchSettings.readSettings();
|
||||
editableMap = settings.getMimeTypeToExtsMap();
|
||||
actions.add(new AddFileExtensionAction(menuItemStr, extStr, mimeTypeStr, settings));
|
||||
ArrayList<String> editedExtensions = new ArrayList<>(Arrays.asList(editableMap.get(mimeTypeStr)));
|
||||
Set<String> editedExtensions = editableMap.get(mimeTypeStr);
|
||||
if (editedExtensions.contains(extStr)) {
|
||||
// Informs the user that they have already added this extension to this MIME type
|
||||
actions.get(0).setEnabled(false);
|
||||
|
@ -18,10 +18,9 @@
|
||||
*/
|
||||
package org.sleuthkit.autopsy.modules.fileextmismatch;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
import java.util.logging.Level;
|
||||
import org.openide.util.NbBundle;
|
||||
import org.openide.util.NbBundle.Messages;
|
||||
@ -52,7 +51,7 @@ public class FileExtMismatchIngestModule implements FileIngestModule {
|
||||
private static final Logger logger = Logger.getLogger(FileExtMismatchIngestModule.class.getName());
|
||||
private final IngestServices services = IngestServices.getInstance();
|
||||
private final FileExtMismatchDetectorModuleSettings settings;
|
||||
private HashMap<String, String[]> mimeTypeToExtsMap = new HashMap<>();
|
||||
private HashMap<String, Set<String>> mimeTypeToExtsMap = new HashMap<>();
|
||||
private long jobId;
|
||||
private static final HashMap<Long, IngestJobTotals> totalsForIngestJobs = new HashMap<>();
|
||||
private static final IngestModuleReferenceCounter refCounter = new IngestModuleReferenceCounter();
|
||||
@ -109,7 +108,7 @@ public class FileExtMismatchIngestModule implements FileIngestModule {
|
||||
@Override
|
||||
public ProcessResult process(AbstractFile abstractFile) {
|
||||
blackboard = Case.getCurrentCase().getServices().getBlackboard();
|
||||
if(this.settings.skipKnownFiles() && (abstractFile.getKnown() == FileKnown.KNOWN)) {
|
||||
if (this.settings.skipKnownFiles() && (abstractFile.getKnown() == FileKnown.KNOWN)) {
|
||||
return ProcessResult.OK;
|
||||
}
|
||||
|
||||
@ -180,16 +179,12 @@ public class FileExtMismatchIngestModule implements FileIngestModule {
|
||||
}
|
||||
|
||||
//get known allowed values from the map for this type
|
||||
String[] allowedExtArray = mimeTypeToExtsMap.get(currActualSigType);
|
||||
if (allowedExtArray != null) {
|
||||
List<String> allowedExtList = Arrays.asList(allowedExtArray);
|
||||
|
||||
Set<String> allowedExtSet = mimeTypeToExtsMap.get(currActualSigType);
|
||||
if (allowedExtSet != null) {
|
||||
// see if the filename ext is in the allowed list
|
||||
if (allowedExtList != null) {
|
||||
for (String e : allowedExtList) {
|
||||
if (e.equals(currActualExt)) {
|
||||
return false;
|
||||
}
|
||||
for (String e : allowedExtSet) {
|
||||
if (e.equals(currActualExt)) {
|
||||
return false;
|
||||
}
|
||||
return true; //potential mismatch
|
||||
}
|
||||
|
@ -23,9 +23,9 @@ import java.io.FileInputStream;
|
||||
import java.io.FileOutputStream;
|
||||
import java.io.IOException;
|
||||
import java.io.Serializable;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.HashSet;
|
||||
import java.util.Set;
|
||||
import java.util.logging.Level;
|
||||
import org.openide.util.io.NbObjectInputStream;
|
||||
import org.openide.util.io.NbObjectOutputStream;
|
||||
@ -44,7 +44,7 @@ import org.w3c.dom.NodeList;
|
||||
class FileExtMismatchSettings implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
private HashMap<String, String[]> mimeTypeToExtsMap;
|
||||
private HashMap<String, Set<String>> mimeTypeToExtsMap;
|
||||
private static final Logger logger = Logger.getLogger(FileExtMismatchSettings.class.getName());
|
||||
private static final String SIG_EL = "signature"; //NON-NLS
|
||||
private static final String EXT_EL = "ext"; //NON-NLS
|
||||
@ -68,21 +68,21 @@ class FileExtMismatchSettings implements Serializable {
|
||||
*
|
||||
* @param mimeTypeToExtsMap
|
||||
*/
|
||||
FileExtMismatchSettings(HashMap<String, String[]> mimeTypeToExtsMap) {
|
||||
FileExtMismatchSettings(HashMap<String, Set<String>> mimeTypeToExtsMap) {
|
||||
this.mimeTypeToExtsMap = mimeTypeToExtsMap;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the mime type to extension map
|
||||
*/
|
||||
HashMap<String, String[]> getMimeTypeToExtsMap() {
|
||||
HashMap<String, Set<String>> getMimeTypeToExtsMap() {
|
||||
return mimeTypeToExtsMap;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the signature to extension map for this settings.
|
||||
*/
|
||||
public void setMimeTypeToExtsMap(HashMap<String, String[]> mimeTypeToExtsMap) {
|
||||
public void setMimeTypeToExtsMap(HashMap<String, Set<String>> mimeTypeToExtsMap) {
|
||||
this.mimeTypeToExtsMap = mimeTypeToExtsMap;
|
||||
}
|
||||
|
||||
@ -113,7 +113,7 @@ class FileExtMismatchSettings implements Serializable {
|
||||
}
|
||||
|
||||
private static FileExtMismatchSettings readXmlSettings() throws FileExtMismatchSettingsException {
|
||||
HashMap<String, String[]> sigTypeToExtMap = new HashMap<>();
|
||||
HashMap<String, Set<String>> sigTypeToExtMap = new HashMap<>();
|
||||
//Next tries to read the xml file if the serialized file did not exist
|
||||
File xmlFile = new File(FILTER_CONFIG_FILE);
|
||||
if (xmlFile.exists()) {
|
||||
@ -143,13 +143,12 @@ class FileExtMismatchSettings implements Serializable {
|
||||
final int numExts = extNList.getLength();
|
||||
|
||||
if (numExts != 0) {
|
||||
List<String> extStrings = new ArrayList<>();
|
||||
Set<String> extStrings = new HashSet<>();
|
||||
for (int extIndex = 0; extIndex < numExts; ++extIndex) {
|
||||
Element extEl = (Element) extNList.item(extIndex);
|
||||
extStrings.add(extEl.getTextContent());
|
||||
}
|
||||
String[] sarray = extStrings.toArray(new String[0]);
|
||||
sigTypeToExtMap.put(mimetype, sarray);
|
||||
sigTypeToExtMap.put(mimetype, extStrings);
|
||||
} else {
|
||||
sigTypeToExtMap.put(mimetype, null); //ok to have an empty type (the ingest module will not use it)
|
||||
}
|
||||
|
@ -20,19 +20,20 @@ package org.sleuthkit.autopsy.modules.fileextmismatch;
|
||||
|
||||
import java.awt.Color;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
import java.util.Set;
|
||||
import java.util.logging.Level;
|
||||
import javax.swing.JOptionPane;
|
||||
import javax.swing.ListSelectionModel;
|
||||
import javax.swing.event.ListSelectionEvent;
|
||||
import javax.swing.event.ListSelectionListener;
|
||||
import javax.swing.table.AbstractTableModel;
|
||||
import org.sleuthkit.autopsy.ingest.IngestModuleGlobalSettingsPanel;
|
||||
import org.openide.util.NbBundle;
|
||||
import org.sleuthkit.autopsy.coreutils.Logger;
|
||||
import org.sleuthkit.autopsy.corecomponents.OptionsPanel;
|
||||
import org.sleuthkit.autopsy.coreutils.Logger;
|
||||
import org.sleuthkit.autopsy.ingest.IngestModuleGlobalSettingsPanel;
|
||||
import org.sleuthkit.autopsy.modules.filetypeid.FileTypeDetector;
|
||||
|
||||
/**
|
||||
@ -42,7 +43,7 @@ import org.sleuthkit.autopsy.modules.filetypeid.FileTypeDetector;
|
||||
final class FileExtMismatchSettingsPanel extends IngestModuleGlobalSettingsPanel implements OptionsPanel {
|
||||
|
||||
private static final Logger logger = Logger.getLogger(FileExtMismatchSettingsPanel.class.getName());
|
||||
private HashMap<String, String[]> editableMap = new HashMap<>();
|
||||
private HashMap<String, Set<String>> editableMap = new HashMap<>();
|
||||
private ArrayList<String> mimeList = null;
|
||||
private ArrayList<String> currentExtensions = null;
|
||||
private MimeTableModel mimeTableModel;
|
||||
@ -382,11 +383,11 @@ final class FileExtMismatchSettingsPanel extends IngestModuleGlobalSettingsPanel
|
||||
return;
|
||||
}
|
||||
|
||||
ArrayList<String> editedExtensions = new ArrayList<>(Arrays.asList(editableMap.get(selectedMime)));
|
||||
Set<String> editedExtensions = editableMap.get(selectedMime);
|
||||
editedExtensions.add(newExt);
|
||||
|
||||
// Old array will be replaced by new array for this key
|
||||
editableMap.put(selectedMime, editedExtensions.toArray(new String[0]));
|
||||
editableMap.put(selectedMime, editedExtensions);
|
||||
|
||||
// Refresh table
|
||||
updateExtList();
|
||||
@ -430,7 +431,7 @@ final class FileExtMismatchSettingsPanel extends IngestModuleGlobalSettingsPanel
|
||||
return;
|
||||
}
|
||||
|
||||
editableMap.put(newMime, new String[0]);
|
||||
editableMap.put(newMime, new HashSet<String>());
|
||||
|
||||
// Refresh table
|
||||
updateMimeList();
|
||||
@ -491,12 +492,12 @@ final class FileExtMismatchSettingsPanel extends IngestModuleGlobalSettingsPanel
|
||||
return;
|
||||
}
|
||||
|
||||
ArrayList<String> editedExtensions = new ArrayList<>(Arrays.asList(editableMap.get(selectedMime)));
|
||||
Set<String> editedExtensions = editableMap.get(selectedMime);
|
||||
editedExtensions.remove(selectedExt);
|
||||
String deadExt = selectedExt;
|
||||
|
||||
// Old array will be replaced by new array for this key
|
||||
editableMap.put(selectedMime, editedExtensions.toArray(new String[0]));
|
||||
editableMap.put(selectedMime, editedExtensions);
|
||||
|
||||
// Refresh tables
|
||||
updateExtList();
|
||||
@ -517,10 +518,10 @@ final class FileExtMismatchSettingsPanel extends IngestModuleGlobalSettingsPanel
|
||||
}
|
||||
|
||||
private void updateExtList() {
|
||||
String[] temp = editableMap.get(selectedMime);
|
||||
Set<String> temp = editableMap.get(selectedMime);
|
||||
if (temp != null) {
|
||||
currentExtensions = new ArrayList<>(Arrays.asList(temp));
|
||||
if (temp.length > 0) {
|
||||
currentExtensions = new ArrayList<>(temp);
|
||||
if (temp.size() > 0) {
|
||||
Collections.sort(currentExtensions);
|
||||
}
|
||||
} else {
|
||||
|
Loading…
x
Reference in New Issue
Block a user