Finished encase hash set importing

This commit is contained in:
Ann Priestman 2017-11-08 12:08:52 -05:00
parent bed554f874
commit d9e97d1b94
2 changed files with 28 additions and 6 deletions

View File

@ -90,11 +90,11 @@ final class HashDbImportDatabaseDialog extends javax.swing.JDialog {
fileChooser.setMultiSelectionEnabled(false); fileChooser.setMultiSelectionEnabled(false);
} }
@NbBundle.Messages({"HashDbImportDatabaseDialog.centralRepoExtFilter.text=Hash Database File (.idx only)"}) @NbBundle.Messages({"HashDbImportDatabaseDialog.centralRepoExtFilter.text=Hash Database File (.idx or .hash only)"})
private void updateFileChooserFilter() { private void updateFileChooserFilter() {
fileChooser.resetChoosableFileFilters(); fileChooser.resetChoosableFileFilters();
if(centralRepoRadioButton.isSelected()){ if(centralRepoRadioButton.isSelected()){
String[] EXTENSION = new String[]{"idx"}; //NON-NLS String[] EXTENSION = new String[]{"hash", "Hash", "idx"}; //NON-NLS
FileNameExtensionFilter filter = new FileNameExtensionFilter( FileNameExtensionFilter filter = new FileNameExtensionFilter(
NbBundle.getMessage(this.getClass(), "HashDbImportDatabaseDialog.centralRepoExtFilter.text"), EXTENSION); NbBundle.getMessage(this.getClass(), "HashDbImportDatabaseDialog.centralRepoExtFilter.text"), EXTENSION);
fileChooser.setFileFilter(filter); fileChooser.setFileFilter(filter);

View File

@ -18,6 +18,7 @@
*/ */
package org.sleuthkit.autopsy.modules.hashdatabase; package org.sleuthkit.autopsy.modules.hashdatabase;
import java.awt.Color;
import java.awt.Cursor; import java.awt.Cursor;
import java.beans.PropertyChangeListener; import java.beans.PropertyChangeListener;
import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeEvent;
@ -84,10 +85,10 @@ class ImportCentralRepoDbProgressDialog extends javax.swing.JDialog implements P
setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR)); setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
File importFile = new File(importFileName); File importFile = new File(importFileName);
if(importFileName.endsWith(".idx")){ // < need case insensitive if(importFileName.toLowerCase().endsWith(".idx")){
worker = new ImportIDXWorker(hashSetName, version, orgId, searchDuringIngest, sendIngestMessages, worker = new ImportIDXWorker(hashSetName, version, orgId, searchDuringIngest, sendIngestMessages,
knownFilesType, readOnly, importFile); knownFilesType, readOnly, importFile);
} else if(importFileName.endsWith(".hash")){ // < need case insensitive } else if(importFileName.toLowerCase().endsWith(".hash")){
worker = new ImportEncaseWorker(hashSetName, version, orgId, searchDuringIngest, sendIngestMessages, worker = new ImportEncaseWorker(hashSetName, version, orgId, searchDuringIngest, sendIngestMessages,
knownFilesType, readOnly, importFile); knownFilesType, readOnly, importFile);
} else { } else {
@ -123,8 +124,14 @@ class ImportCentralRepoDbProgressDialog extends javax.swing.JDialog implements P
bnCancel.setEnabled(false); bnCancel.setEnabled(false);
bnOk.setEnabled(true); bnOk.setEnabled(true);
progressBar.setValue(progressBar.getMaximum()); if(worker.getError().isEmpty()){
lbProgress.setText(getProgressString()); progressBar.setValue(progressBar.getMaximum());
lbProgress.setText(getProgressString());
} else {
progressBar.setValue(0);
lbProgress.setForeground(Color.red);
lbProgress.setText(worker.getError());
}
} }
} }
@ -140,6 +147,7 @@ class ImportCentralRepoDbProgressDialog extends javax.swing.JDialog implements P
int getProgressPercentage(); int getProgressPercentage();
long getLinesProcessed(); long getLinesProcessed();
HashDbManager.HashDatabase getDatabase(); HashDbManager.HashDatabase getDatabase();
String getError();
} }
class ImportEncaseWorker extends SwingWorker<Void,Void> implements CentralRepoImportWorker{ class ImportEncaseWorker extends SwingWorker<Void,Void> implements CentralRepoImportWorker{
@ -156,6 +164,7 @@ class ImportCentralRepoDbProgressDialog extends javax.swing.JDialog implements P
private int crIndex = -1; private int crIndex = -1;
private HashDbManager.CentralRepoHashDb newHashDb = null; private HashDbManager.CentralRepoHashDb newHashDb = null;
private final AtomicLong numLines = new AtomicLong(); private final AtomicLong numLines = new AtomicLong();
private String errorString = "";
ImportEncaseWorker(String hashSetName, String version, int orgId, ImportEncaseWorker(String hashSetName, String version, int orgId,
boolean searchDuringIngest, boolean sendIngestMessages, HashDbManager.HashDb.KnownFilesType knownFilesType, boolean searchDuringIngest, boolean sendIngestMessages, HashDbManager.HashDb.KnownFilesType knownFilesType,
@ -201,6 +210,11 @@ class ImportCentralRepoDbProgressDialog extends javax.swing.JDialog implements P
return this.getProgress(); return this.getProgress();
} }
@Override
public String getError(){
return errorString;
}
@Override @Override
protected Void doInBackground() throws Exception { protected Void doInBackground() throws Exception {
@ -274,6 +288,7 @@ class ImportCentralRepoDbProgressDialog extends javax.swing.JDialog implements P
} }
} }
@NbBundle.Messages({"ImportCentralRepoDbProgressDialog.importError=Error importing hash set"})
@Override @Override
protected void done() { protected void done() {
@ -302,6 +317,7 @@ class ImportCentralRepoDbProgressDialog extends javax.swing.JDialog implements P
Logger.getLogger(ImportCentralRepoDbProgressDialog.class.getName()).log(Level.SEVERE, "Error deleting incomplete hash set from central repository", ex); Logger.getLogger(ImportCentralRepoDbProgressDialog.class.getName()).log(Level.SEVERE, "Error deleting incomplete hash set from central repository", ex);
} }
} }
errorString = Bundle.ImportCentralRepoDbProgressDialog_importError();
} }
} }
} }
@ -321,6 +337,7 @@ class ImportCentralRepoDbProgressDialog extends javax.swing.JDialog implements P
private int crIndex = -1; private int crIndex = -1;
private HashDbManager.CentralRepoHashDb newHashDb = null; private HashDbManager.CentralRepoHashDb newHashDb = null;
private final AtomicLong numLines = new AtomicLong(); private final AtomicLong numLines = new AtomicLong();
private String errorString = "";
ImportIDXWorker(String hashSetName, String version, int orgId, ImportIDXWorker(String hashSetName, String version, int orgId,
boolean searchDuringIngest, boolean sendIngestMessages, HashDbManager.HashDb.KnownFilesType knownFilesType, boolean searchDuringIngest, boolean sendIngestMessages, HashDbManager.HashDb.KnownFilesType knownFilesType,
@ -365,6 +382,11 @@ class ImportCentralRepoDbProgressDialog extends javax.swing.JDialog implements P
return this.getProgress(); return this.getProgress();
} }
@Override
public String getError(){
return errorString;
}
@Override @Override
protected Void doInBackground() throws Exception { protected Void doInBackground() throws Exception {