mirror of
https://github.com/overcuriousity/autopsy-flatpak.git
synced 2025-07-14 17:06:16 +00:00
Merge branch 'develop' of https://github.com/sleuthkit/autopsy into develop
This commit is contained in:
commit
995b8768a8
@ -193,8 +193,6 @@ NewCaseVisualPanel1.getName.text=Case Info
|
|||||||
NewCaseVisualPanel1.caseDirBrowse.selectButton.text=Select
|
NewCaseVisualPanel1.caseDirBrowse.selectButton.text=Select
|
||||||
NewCaseVisualPanel1.badCredentials.text=Bad multi-user settings (see Tools, Options, Multi-user) or services are down.
|
NewCaseVisualPanel1.badCredentials.text=Bad multi-user settings (see Tools, Options, Multi-user) or services are down.
|
||||||
NewCaseVisualPanel2.getName.text=Additional Information
|
NewCaseVisualPanel2.getName.text=Additional Information
|
||||||
NewCaseWizardAction.closeCurCase.confMsg.msg=Do you want to save and close this case and proceed with the new case creation?
|
|
||||||
NewCaseWizardAction.closeCurCase.confMsg.title=Warning\: Closing the Current Case
|
|
||||||
NewCaseWizardAction.newCase.windowTitle.text=New Case Information
|
NewCaseWizardAction.newCase.windowTitle.text=New Case Information
|
||||||
NewCaseWizardAction.getName.text=New Case Wizard
|
NewCaseWizardAction.getName.text=New Case Wizard
|
||||||
NewCaseWizardAction.databaseProblem1.text=Cannot open database. Cancelling case creation.
|
NewCaseWizardAction.databaseProblem1.text=Cannot open database. Cancelling case creation.
|
||||||
@ -264,3 +262,5 @@ CasePropertiesForm.tbDbType.text=
|
|||||||
CasePropertiesForm.lbDbName.text=Database Name:
|
CasePropertiesForm.lbDbName.text=Database Name:
|
||||||
CasePropertiesForm.tbDbName.text=
|
CasePropertiesForm.tbDbName.text=
|
||||||
CaseExceptionWarning.CheckMultiUserOptions=Check Multi-user options.
|
CaseExceptionWarning.CheckMultiUserOptions=Check Multi-user options.
|
||||||
|
CloseCaseWhileIngesting.Warning=Ingest is running. Are you sure you want to close the case?
|
||||||
|
CloseCaseWhileIngesting.Warning.title=Warning\: This will close the current case
|
||||||
|
@ -28,6 +28,14 @@ import org.openide.util.HelpCtx;
|
|||||||
import org.openide.util.NbBundle;
|
import org.openide.util.NbBundle;
|
||||||
import org.openide.util.actions.CallableSystemAction;
|
import org.openide.util.actions.CallableSystemAction;
|
||||||
import org.openide.util.actions.Presenter;
|
import org.openide.util.actions.Presenter;
|
||||||
|
import org.sleuthkit.autopsy.coreutils.Logger;
|
||||||
|
import org.sleuthkit.autopsy.ingest.IngestManager;
|
||||||
|
import java.util.logging.Level;
|
||||||
|
import org.openide.DialogDescriptor;
|
||||||
|
import org.openide.DialogDisplayer;
|
||||||
|
import org.openide.NotifyDescriptor;
|
||||||
|
import org.openide.windows.WindowManager;
|
||||||
|
import java.awt.Cursor;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The action to close the current Case. This class should be disabled on
|
* The action to close the current Case. This class should be disabled on
|
||||||
@ -57,10 +65,32 @@ public final class CaseCloseAction extends CallableSystemAction implements Prese
|
|||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public void actionPerformed(ActionEvent e) {
|
public void actionPerformed(ActionEvent e) {
|
||||||
|
|
||||||
|
// if ingest is ongoing, warn and get confirmaion before opening a different case
|
||||||
|
if (IngestManager.getInstance().isIngestRunning()) {
|
||||||
|
// show the confirmation first to close the current case and open the "New Case" wizard panel
|
||||||
|
String closeCurrentCase = NbBundle.getMessage(this.getClass(), "CloseCaseWhileIngesting.Warning");
|
||||||
|
NotifyDescriptor descriptor = new NotifyDescriptor.Confirmation(closeCurrentCase,
|
||||||
|
NbBundle.getMessage(this.getClass(), "CloseCaseWhileIngesting.Warning.title"),
|
||||||
|
NotifyDescriptor.YES_NO_OPTION, NotifyDescriptor.WARNING_MESSAGE);
|
||||||
|
descriptor.setValue(NotifyDescriptor.NO_OPTION);
|
||||||
|
|
||||||
|
Object res = DialogDisplayer.getDefault().notify(descriptor);
|
||||||
|
if (res != null && res == DialogDescriptor.YES_OPTION) {
|
||||||
|
try {
|
||||||
|
Case.getCurrentCase().closeCase(); // close the current case
|
||||||
|
} catch (Exception ex) {
|
||||||
|
Logger.getLogger(NewCaseWizardAction.class.getName()).log(Level.WARNING, "Error closing case.", ex); //NON-NLS
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (Case.existsCurrentCase() == false) {
|
if (Case.existsCurrentCase() == false) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
WindowManager.getDefault().getMainWindow().setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
|
||||||
new SwingWorker<Void, Void>() {
|
new SwingWorker<Void, Void>() {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -76,6 +106,7 @@ public final class CaseCloseAction extends CallableSystemAction implements Prese
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void done() {
|
protected void done() {
|
||||||
|
WindowManager.getDefault().getMainWindow().setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
|
||||||
StartupWindowProvider.getInstance().open();
|
StartupWindowProvider.getInstance().open();
|
||||||
}
|
}
|
||||||
}.execute();
|
}.execute();
|
||||||
|
@ -32,6 +32,12 @@ import org.openide.util.lookup.ServiceProvider;
|
|||||||
import org.openide.windows.WindowManager;
|
import org.openide.windows.WindowManager;
|
||||||
import org.sleuthkit.autopsy.coreutils.ModuleSettings;
|
import org.sleuthkit.autopsy.coreutils.ModuleSettings;
|
||||||
import org.sleuthkit.autopsy.coreutils.Version;
|
import org.sleuthkit.autopsy.coreutils.Version;
|
||||||
|
import org.openide.DialogDescriptor;
|
||||||
|
import org.openide.DialogDisplayer;
|
||||||
|
import org.openide.NotifyDescriptor;
|
||||||
|
import org.sleuthkit.autopsy.coreutils.Logger;
|
||||||
|
import java.util.logging.Level;
|
||||||
|
import org.sleuthkit.autopsy.ingest.IngestManager;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* An action that opens an existing case.
|
* An action that opens an existing case.
|
||||||
@ -65,6 +71,28 @@ public final class CaseOpenAction implements ActionListener {
|
|||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public void actionPerformed(ActionEvent e) {
|
public void actionPerformed(ActionEvent e) {
|
||||||
|
|
||||||
|
// if ingest is ongoing, warn and get confirmaion before opening a different case
|
||||||
|
if (IngestManager.getInstance().isIngestRunning()) {
|
||||||
|
// show the confirmation first to close the current case and open the "New Case" wizard panel
|
||||||
|
String closeCurrentCase = NbBundle.getMessage(this.getClass(), "CloseCaseWhileIngesting.Warning");
|
||||||
|
NotifyDescriptor descriptor = new NotifyDescriptor.Confirmation(closeCurrentCase,
|
||||||
|
NbBundle.getMessage(this.getClass(), "CloseCaseWhileIngesting.Warning.title"),
|
||||||
|
NotifyDescriptor.YES_NO_OPTION, NotifyDescriptor.WARNING_MESSAGE);
|
||||||
|
descriptor.setValue(NotifyDescriptor.NO_OPTION);
|
||||||
|
|
||||||
|
Object res = DialogDisplayer.getDefault().notify(descriptor);
|
||||||
|
if (res != null && res == DialogDescriptor.YES_OPTION) {
|
||||||
|
try {
|
||||||
|
Case.getCurrentCase().closeCase(); // close the current case
|
||||||
|
} catch (Exception ex) {
|
||||||
|
Logger.getLogger(NewCaseWizardAction.class.getName()).log(Level.WARNING, "Error closing case.", ex); //NON-NLS
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Pop up a file chooser to allow the user to select a case meta data
|
* Pop up a file chooser to allow the user to select a case meta data
|
||||||
* file (.aut file)
|
* file (.aut file)
|
||||||
@ -101,7 +129,7 @@ public final class CaseOpenAction implements ActionListener {
|
|||||||
StartupWindowProvider.getInstance().open();
|
StartupWindowProvider.getInstance().open();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}).start();
|
}).start();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -39,15 +39,9 @@ import javax.swing.JOptionPane;
|
|||||||
import org.sleuthkit.autopsy.casemodule.Case.CaseType;
|
import org.sleuthkit.autopsy.casemodule.Case.CaseType;
|
||||||
import org.sleuthkit.autopsy.core.UserPreferences;
|
import org.sleuthkit.autopsy.core.UserPreferences;
|
||||||
import org.sleuthkit.datamodel.CaseDbConnectionInfo;
|
import org.sleuthkit.datamodel.CaseDbConnectionInfo;
|
||||||
import org.sleuthkit.datamodel.SleuthkitCase;
|
|
||||||
import org.sleuthkit.datamodel.TskData.DbType;
|
|
||||||
import java.awt.HeadlessException;
|
|
||||||
import java.util.MissingResourceException;
|
|
||||||
import java.util.concurrent.ExecutionException;
|
|
||||||
import org.openide.windows.WindowManager;
|
import org.openide.windows.WindowManager;
|
||||||
import org.sleuthkit.datamodel.TskCoreException;
|
|
||||||
import java.awt.Cursor;
|
import java.awt.Cursor;
|
||||||
import org.sleuthkit.autopsy.core.UserPreferencesException;
|
import org.sleuthkit.autopsy.ingest.IngestManager;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Action to open the New Case wizard.
|
* Action to open the New Case wizard.
|
||||||
@ -62,29 +56,30 @@ final class NewCaseWizardAction extends CallableSystemAction {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void performAction() {
|
public void performAction() {
|
||||||
// there's a case open
|
|
||||||
if (Case.existsCurrentCase()) {
|
|
||||||
// show the confirmation first to close the current case and open the "New Case" wizard panel
|
|
||||||
String closeCurrentCase = NbBundle
|
|
||||||
.getMessage(this.getClass(), "NewCaseWizardAction.closeCurCase.confMsg.msg");
|
|
||||||
NotifyDescriptor d = new NotifyDescriptor.Confirmation(closeCurrentCase,
|
|
||||||
NbBundle.getMessage(this.getClass(),
|
|
||||||
"NewCaseWizardAction.closeCurCase.confMsg.title"),
|
|
||||||
NotifyDescriptor.YES_NO_OPTION, NotifyDescriptor.WARNING_MESSAGE);
|
|
||||||
d.setValue(NotifyDescriptor.NO_OPTION);
|
|
||||||
|
|
||||||
Object res = DialogDisplayer.getDefault().notify(d);
|
// if ingest is ongoing, warn and get confirmaion before opening a different case
|
||||||
|
if (IngestManager.getInstance().isIngestRunning()) {
|
||||||
|
// show the confirmation first to close the current case and open the "New Case" wizard panel
|
||||||
|
String closeCurrentCase = NbBundle.getMessage(this.getClass(), "CloseCaseWhileIngesting.Warning");
|
||||||
|
NotifyDescriptor descriptor = new NotifyDescriptor.Confirmation(closeCurrentCase,
|
||||||
|
NbBundle.getMessage(this.getClass(), "CloseCaseWhileIngesting.Warning.title"),
|
||||||
|
NotifyDescriptor.YES_NO_OPTION, NotifyDescriptor.WARNING_MESSAGE);
|
||||||
|
descriptor.setValue(NotifyDescriptor.NO_OPTION);
|
||||||
|
|
||||||
|
Object res = DialogDisplayer.getDefault().notify(descriptor);
|
||||||
if (res != null && res == DialogDescriptor.YES_OPTION) {
|
if (res != null && res == DialogDescriptor.YES_OPTION) {
|
||||||
try {
|
try {
|
||||||
Case.getCurrentCase().closeCase(); // close the current case
|
Case.getCurrentCase().closeCase(); // close the current case
|
||||||
newCaseAction(); // start the new case creation process
|
|
||||||
} catch (Exception ex) {
|
} catch (Exception ex) {
|
||||||
Logger.getLogger(NewCaseWizardAction.class.getName()).log(Level.WARNING, "Error closing case.", ex); //NON-NLS
|
Logger.getLogger(NewCaseWizardAction.class.getName()).log(Level.WARNING, "Error closing case.", ex); //NON-NLS
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
} else {
|
|
||||||
newCaseAction();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
WindowManager.getDefault().getMainWindow().setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
|
||||||
|
newCaseAction(); // start the new case creation process
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -120,6 +115,8 @@ final class NewCaseWizardAction extends CallableSystemAction {
|
|||||||
final String caseName = (String) wizardDescriptor.getProperty("caseName"); //NON-NLS
|
final String caseName = (String) wizardDescriptor.getProperty("caseName"); //NON-NLS
|
||||||
try {
|
try {
|
||||||
get();
|
get();
|
||||||
|
CaseType currentCaseType = CaseType.values()[(int) wizardDescriptor.getProperty("caseType")]; //NON-NLS
|
||||||
|
CaseDbConnectionInfo info = UserPreferences.getDatabaseConnectionInfo();
|
||||||
AddImageAction addImageAction = SystemAction.get(AddImageAction.class);
|
AddImageAction addImageAction = SystemAction.get(AddImageAction.class);
|
||||||
addImageAction.actionPerformed(null);
|
addImageAction.actionPerformed(null);
|
||||||
} catch (Exception ex) {
|
} catch (Exception ex) {
|
||||||
|
@ -28,6 +28,12 @@ import javax.swing.SwingUtilities;
|
|||||||
import org.openide.util.NbBundle;
|
import org.openide.util.NbBundle;
|
||||||
import org.openide.windows.WindowManager;
|
import org.openide.windows.WindowManager;
|
||||||
import java.awt.Cursor;
|
import java.awt.Cursor;
|
||||||
|
import java.util.logging.Level;
|
||||||
|
import org.openide.DialogDescriptor;
|
||||||
|
import org.openide.DialogDisplayer;
|
||||||
|
import org.openide.NotifyDescriptor;
|
||||||
|
import org.sleuthkit.autopsy.coreutils.Logger;
|
||||||
|
import org.sleuthkit.autopsy.ingest.IngestManager;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This class is used to add the action to the recent case menu item. When the
|
* This class is used to add the action to the recent case menu item. When the
|
||||||
@ -54,6 +60,28 @@ class RecentItems implements ActionListener {
|
|||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public void actionPerformed(ActionEvent e) {
|
public void actionPerformed(ActionEvent e) {
|
||||||
|
|
||||||
|
// if ingest is ongoing, warn and get confirmaion before opening a different case
|
||||||
|
if (IngestManager.getInstance().isIngestRunning()) {
|
||||||
|
// show the confirmation first to close the current case and open the "New Case" wizard panel
|
||||||
|
String closeCurrentCase = NbBundle.getMessage(this.getClass(), "CloseCaseWhileIngesting.Warning");
|
||||||
|
NotifyDescriptor descriptor = new NotifyDescriptor.Confirmation(closeCurrentCase,
|
||||||
|
NbBundle.getMessage(this.getClass(), "CloseCaseWhileIngesting.Warning.title"),
|
||||||
|
NotifyDescriptor.YES_NO_OPTION, NotifyDescriptor.WARNING_MESSAGE);
|
||||||
|
descriptor.setValue(NotifyDescriptor.NO_OPTION);
|
||||||
|
|
||||||
|
Object res = DialogDisplayer.getDefault().notify(descriptor);
|
||||||
|
if (res != null && res == DialogDescriptor.YES_OPTION) {
|
||||||
|
try {
|
||||||
|
Case.getCurrentCase().closeCase(); // close the current case
|
||||||
|
} catch (Exception ex) {
|
||||||
|
Logger.getLogger(NewCaseWizardAction.class.getName()).log(Level.WARNING, "Error closing case.", ex); //NON-NLS
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// check if the file exists
|
// check if the file exists
|
||||||
if (caseName.equals("") || casePath.equals("") || (!new File(casePath).exists())) {
|
if (caseName.equals("") || casePath.equals("") || (!new File(casePath).exists())) {
|
||||||
// throw an error here
|
// throw an error here
|
||||||
|
@ -30,6 +30,7 @@ import javax.crypto.spec.PBEKeySpec;
|
|||||||
import javax.crypto.spec.PBEParameterSpec;
|
import javax.crypto.spec.PBEParameterSpec;
|
||||||
import org.openide.util.NbBundle;
|
import org.openide.util.NbBundle;
|
||||||
import org.openide.util.NbPreferences;
|
import org.openide.util.NbPreferences;
|
||||||
|
import org.sleuthkit.autopsy.coreutils.PlatformUtil;
|
||||||
import org.sleuthkit.datamodel.CaseDbConnectionInfo;
|
import org.sleuthkit.datamodel.CaseDbConnectionInfo;
|
||||||
import org.sleuthkit.datamodel.TskData.DbType;
|
import org.sleuthkit.datamodel.TskData.DbType;
|
||||||
|
|
||||||
@ -39,6 +40,7 @@ import org.sleuthkit.datamodel.TskData.DbType;
|
|||||||
*/
|
*/
|
||||||
public final class UserPreferences {
|
public final class UserPreferences {
|
||||||
|
|
||||||
|
private static final boolean isWindowsOS = PlatformUtil.isWindowsOS();
|
||||||
private static final Preferences preferences = NbPreferences.forModule(UserPreferences.class);
|
private static final Preferences preferences = NbPreferences.forModule(UserPreferences.class);
|
||||||
public static final String KEEP_PREFERRED_VIEWER = "KeepPreferredViewer"; // NON-NLS
|
public static final String KEEP_PREFERRED_VIEWER = "KeepPreferredViewer"; // NON-NLS
|
||||||
public static final String HIDE_KNOWN_FILES_IN_DATA_SOURCES_TREE = "HideKnownFilesInDataSourcesTree"; //NON-NLS
|
public static final String HIDE_KNOWN_FILES_IN_DATA_SOURCES_TREE = "HideKnownFilesInDataSourcesTree"; //NON-NLS
|
||||||
@ -177,6 +179,9 @@ public final class UserPreferences {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static boolean getIsMultiUserModeEnabled() {
|
public static boolean getIsMultiUserModeEnabled() {
|
||||||
|
if (!isWindowsOS) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
return preferences.getBoolean(IS_MULTI_USER_MODE_ENABLED, false);
|
return preferences.getBoolean(IS_MULTI_USER_MODE_ENABLED, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -153,6 +153,7 @@ MultiUserSettingsPanel.lbSolrSettings.text=Solr Settings
|
|||||||
MultiUserSettingsPanel.cbEnableMultiUser.text=Enable Multi-user cases
|
MultiUserSettingsPanel.cbEnableMultiUser.text=Enable Multi-user cases
|
||||||
MultiUserSettingsPanel.lbDatabaseSettings.text=Database Settings
|
MultiUserSettingsPanel.lbDatabaseSettings.text=Database Settings
|
||||||
MultiUserSettingsPanel.validationErrMsg.incomplete=Fill in all values
|
MultiUserSettingsPanel.validationErrMsg.incomplete=Fill in all values
|
||||||
|
MultiUserSettingsPanel.nonWindowsOs.msg=Multi-user cases are only available on Windows platforms
|
||||||
MultiUserSettingsPanel.validationErrMsg.invalidDatabasePort=Invalid database port number
|
MultiUserSettingsPanel.validationErrMsg.invalidDatabasePort=Invalid database port number
|
||||||
MultiUserSettingsPanel.validationErrMsg.invalidMessageServicePort=Invalid message service port number
|
MultiUserSettingsPanel.validationErrMsg.invalidMessageServicePort=Invalid message service port number
|
||||||
MultiUserSettingsPanel.validationErrMsg.invalidIndexingServerPort=Invalid Solr server port number
|
MultiUserSettingsPanel.validationErrMsg.invalidIndexingServerPort=Invalid Solr server port number
|
||||||
|
@ -23,6 +23,7 @@ import javax.swing.ImageIcon;
|
|||||||
import org.openide.util.ImageUtilities;
|
import org.openide.util.ImageUtilities;
|
||||||
import org.openide.util.Lookup;
|
import org.openide.util.Lookup;
|
||||||
import org.sleuthkit.autopsy.core.UserPreferencesException;
|
import org.sleuthkit.autopsy.core.UserPreferencesException;
|
||||||
|
import org.sleuthkit.autopsy.coreutils.PlatformUtil;
|
||||||
import org.sleuthkit.autopsy.events.MessageServiceException;
|
import org.sleuthkit.autopsy.events.MessageServiceException;
|
||||||
import org.sleuthkit.autopsy.keywordsearchservice.KeywordSearchService;
|
import org.sleuthkit.autopsy.keywordsearchservice.KeywordSearchService;
|
||||||
import org.sleuthkit.autopsy.keywordsearchservice.KeywordSearchServiceException;
|
import org.sleuthkit.autopsy.keywordsearchservice.KeywordSearchServiceException;
|
||||||
@ -39,7 +40,7 @@ public final class MultiUserSettingsPanel extends javax.swing.JPanel {
|
|||||||
private static final String INVALID_DB_PORT_MSG = NbBundle.getMessage(MultiUserSettingsPanel.class, "MultiUserSettingsPanel.validationErrMsg.invalidDatabasePort");
|
private static final String INVALID_DB_PORT_MSG = NbBundle.getMessage(MultiUserSettingsPanel.class, "MultiUserSettingsPanel.validationErrMsg.invalidDatabasePort");
|
||||||
private static final String INVALID_MESSAGE_SERVICE_PORT_MSG = NbBundle.getMessage(MultiUserSettingsPanel.class, "MultiUserSettingsPanel.validationErrMsg.invalidMessageServicePort");
|
private static final String INVALID_MESSAGE_SERVICE_PORT_MSG = NbBundle.getMessage(MultiUserSettingsPanel.class, "MultiUserSettingsPanel.validationErrMsg.invalidMessageServicePort");
|
||||||
private static final String INVALID_INDEXING_SERVER_PORT_MSG = NbBundle.getMessage(MultiUserSettingsPanel.class, "MultiUserSettingsPanel.validationErrMsg.invalidIndexingServerPort");
|
private static final String INVALID_INDEXING_SERVER_PORT_MSG = NbBundle.getMessage(MultiUserSettingsPanel.class, "MultiUserSettingsPanel.validationErrMsg.invalidIndexingServerPort");
|
||||||
private static final int DEFAULT_MESSAGE_SERVICE_PORT = 61616;
|
private static final String NON_WINDOWS_OS_MSG = NbBundle.getMessage(MultiUserSettingsPanel.class, "MultiUserSettingsPanel.nonWindowsOs.msg");
|
||||||
private static final long serialVersionUID = 1L;
|
private static final long serialVersionUID = 1L;
|
||||||
private final MultiUserSettingsPanelController controller;
|
private final MultiUserSettingsPanelController controller;
|
||||||
private final Collection<JTextField> textBoxes = new ArrayList<>();
|
private final Collection<JTextField> textBoxes = new ArrayList<>();
|
||||||
@ -47,6 +48,7 @@ public final class MultiUserSettingsPanel extends javax.swing.JPanel {
|
|||||||
private static final Logger logger = Logger.getLogger(MultiUserSettingsPanel.class.getName());
|
private static final Logger logger = Logger.getLogger(MultiUserSettingsPanel.class.getName());
|
||||||
private final ImageIcon goodIcon;
|
private final ImageIcon goodIcon;
|
||||||
private final ImageIcon badIcon;
|
private final ImageIcon badIcon;
|
||||||
|
private static final boolean isWindowsOS = PlatformUtil.isWindowsOS();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Creates new form AutopsyMultiUserSettingsPanel
|
* Creates new form AutopsyMultiUserSettingsPanel
|
||||||
@ -105,6 +107,10 @@ public final class MultiUserSettingsPanel extends javax.swing.JPanel {
|
|||||||
addDocumentListeners(textBoxes, textBoxChangedListener);
|
addDocumentListeners(textBoxes, textBoxChangedListener);
|
||||||
goodIcon = new ImageIcon(ImageUtilities.loadImage("org/sleuthkit/autopsy/images/good.png", false));
|
goodIcon = new ImageIcon(ImageUtilities.loadImage("org/sleuthkit/autopsy/images/good.png", false));
|
||||||
badIcon = new ImageIcon(ImageUtilities.loadImage("org/sleuthkit/autopsy/images/bad.png", false));
|
badIcon = new ImageIcon(ImageUtilities.loadImage("org/sleuthkit/autopsy/images/bad.png", false));
|
||||||
|
if (!isWindowsOS) {
|
||||||
|
cbEnableMultiUser.setEnabled(false);
|
||||||
|
cbEnableMultiUser.setSelected(false);
|
||||||
|
}
|
||||||
enableMultiUserComponents(textBoxes, cbEnableMultiUser.isSelected());
|
enableMultiUserComponents(textBoxes, cbEnableMultiUser.isSelected());
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -460,7 +466,11 @@ public final class MultiUserSettingsPanel extends javax.swing.JPanel {
|
|||||||
|
|
||||||
private void cbEnableMultiUserItemStateChanged(java.awt.event.ItemEvent evt) {//GEN-FIRST:event_cbEnableMultiUserItemStateChanged
|
private void cbEnableMultiUserItemStateChanged(java.awt.event.ItemEvent evt) {//GEN-FIRST:event_cbEnableMultiUserItemStateChanged
|
||||||
if (!cbEnableMultiUser.isSelected()) {
|
if (!cbEnableMultiUser.isSelected()) {
|
||||||
tbOops.setText("");
|
if (!isWindowsOS) {
|
||||||
|
tbOops.setText(NON_WINDOWS_OS_MSG);
|
||||||
|
} else {
|
||||||
|
tbOops.setText("");
|
||||||
|
}
|
||||||
bnTestDatabase.setEnabled(false);
|
bnTestDatabase.setEnabled(false);
|
||||||
lbTestDatabase.setIcon(null);
|
lbTestDatabase.setIcon(null);
|
||||||
bnTestSolr.setEnabled(false);
|
bnTestSolr.setEnabled(false);
|
||||||
@ -643,6 +653,10 @@ public final class MultiUserSettingsPanel extends javax.swing.JPanel {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void store() {
|
void store() {
|
||||||
|
if (!isWindowsOS) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
DbType dbType = DbType.SQLITE;
|
DbType dbType = DbType.SQLITE;
|
||||||
|
|
||||||
if (cbEnableMultiUser.isSelected()) {
|
if (cbEnableMultiUser.isSelected()) {
|
||||||
@ -694,7 +708,11 @@ public final class MultiUserSettingsPanel extends javax.swing.JPanel {
|
|||||||
* @return true if it's okay, false otherwise.
|
* @return true if it's okay, false otherwise.
|
||||||
*/
|
*/
|
||||||
boolean valid() {
|
boolean valid() {
|
||||||
tbOops.setText("");
|
if (!isWindowsOS) {
|
||||||
|
tbOops.setText(NON_WINDOWS_OS_MSG);
|
||||||
|
} else {
|
||||||
|
tbOops.setText("");
|
||||||
|
}
|
||||||
|
|
||||||
if (cbEnableMultiUser.isSelected()) {
|
if (cbEnableMultiUser.isSelected()) {
|
||||||
return checkFieldsAndEnableButtons()
|
return checkFieldsAndEnableButtons()
|
||||||
|
@ -6,7 +6,7 @@ The Android Analyzer module allows you to analyze SQLite and other files from an
|
|||||||
|
|
||||||
Simply add your physical images or file system dumps as data sources and enable the Android Analyzer module.
|
Simply add your physical images or file system dumps as data sources and enable the Android Analyzer module.
|
||||||
|
|
||||||
NOTE: This module is not exhaustive with its support for Android. It was created as a starting point for others to contribute plug-ins for 3rd party apps. See the Developer docs (http://sleuthkit.org/autopsy/docs/api-docs/3.1/mod_mobile_page.html) for information on writing modules.
|
NOTE: This module is not exhaustive with its support for Android. It was created as a starting point for others to contribute plug-ins for 3rd party apps. See the Developer docs (http://sleuthkit.org/autopsy/docs/api-docs/4.0/mod_mobile_page.html) for information on writing modules.
|
||||||
|
|
||||||
|
|
||||||
Analysis
|
Analysis
|
||||||
|
@ -18,7 +18,7 @@ The module should be able to extract the following:
|
|||||||
|
|
||||||
NOTE: These database formats vary by version of OS and different vendors can place the databases in different places. Autopsy may not support all versions and vendors.
|
NOTE: These database formats vary by version of OS and different vendors can place the databases in different places. Autopsy may not support all versions and vendors.
|
||||||
|
|
||||||
NOTE: This module is not exhaustive with its support for Android. It was created as a starting point for others to contribute plug-ins for 3rd party apps. See the <a href="http://sleuthkit.org/autopsy/docs/api-docs/3.1/mod_mobile_page.html">Developer docs</a> for information on writing modules.
|
NOTE: This module is not exhaustive with its support for Android. It was created as a starting point for others to contribute plug-ins for 3rd party apps. See the <a href="http://sleuthkit.org/autopsy/docs/api-docs/4.0/mod_mobile_page.html">Developer docs</a> for information on writing modules.
|
||||||
|
|
||||||
|
|
||||||
Configuration
|
Configuration
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
Overview
|
Overview
|
||||||
-----
|
-----
|
||||||
|
|
||||||
This is the User's Guide for the <a href="http://www.sleuthkit.org/autopsy/">open source Autopsy platform</a>. Autopsy allows you to examine a hard drive or mobile device and recover evidence from it. This guide should help you with using Autopsy. The <a href="http://www.sleuthkit.org/autopsy/docs/api-docs/3.1/"> developer's guide</a> will help you develop your own Autopsy modules.
|
This is the User's Guide for the <a href="http://www.sleuthkit.org/autopsy/">open source Autopsy platform</a>. Autopsy allows you to examine a hard drive or mobile device and recover evidence from it. This guide should help you with using Autopsy. The <a href="http://www.sleuthkit.org/autopsy/docs/api-docs/4.0/"> developer's guide</a> will help you develop your own Autopsy modules.
|
||||||
|
|
||||||
Autopsy 4 (and 3) are a complete rewrite from Autopsy 2, and none of this document is relevant to Autopsy 2.
|
Autopsy 4 (and 3) are a complete rewrite from Autopsy 2, and none of this document is relevant to Autopsy 2.
|
||||||
|
|
||||||
|
@ -18,7 +18,7 @@ If you want to write modules, then these pages are for you:
|
|||||||
- \subpage mod_content_page
|
- \subpage mod_content_page
|
||||||
- \subpage mod_result_page
|
- \subpage mod_result_page
|
||||||
- \subpage adv_dev_page
|
- \subpage adv_dev_page
|
||||||
- \subpage query_database_page
|
- <a class="el" href="http://sleuthkit.org/sleuthkit/docs/jni-docs/4.3/query_database_page.html">Query the Database</A>
|
||||||
- \subpage mod_mobile_page
|
- \subpage mod_mobile_page
|
||||||
|
|
||||||
These pages are more detailed if you want to modify Autopsy code instead of writing add-on modules.
|
These pages are more detailed if you want to modify Autopsy code instead of writing add-on modules.
|
||||||
|
@ -43,7 +43,7 @@ ingest modules.
|
|||||||
|
|
||||||
\section ingest_modules_lifecycle Ingest Module Life Cycle
|
\section ingest_modules_lifecycle Ingest Module Life Cycle
|
||||||
|
|
||||||
Before we dive into the details of creating a module, it is important to understand the life cycle of the module. Note that this life cycle is much different for Autopsy 3.1 modules compared to Autopsy 3.0 modules. This section only talks about 3.1 modules.
|
Before we dive into the details of creating a module, it is important to understand the life cycle of the module. Note that this life cycle is much different for Autopsy 3.1 and newer modules compared to Autopsy 3.0 modules. This section only talks about 3.1 and newer modules.
|
||||||
|
|
||||||
You will need to implement at least two classes to make an ingest module:
|
You will need to implement at least two classes to make an ingest module:
|
||||||
-# A factory class that will be created when Autopsy starts and will provide configuration panels to Autopsy and will create instances of your ingest module.
|
-# A factory class that will be created when Autopsy starts and will provide configuration panels to Autopsy and will create instances of your ingest module.
|
||||||
@ -319,7 +319,7 @@ databases from the hash databases manager.
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
\section ingest_modules_api_migration Migrating 3.0 Java Ingest Modules to the 3.1 API
|
\section ingest_modules_api_migration Migrating 3.0 Java Ingest Modules to the 3.1 and newer API
|
||||||
|
|
||||||
This section is a guide for module developers who wrote modules for the 3.0 API. These API changes occurred so that
|
This section is a guide for module developers who wrote modules for the 3.0 API. These API changes occurred so that
|
||||||
we could make parallel pipelines of the file-level ingest modules. This section assumes you've read the above description of the new API.
|
we could make parallel pipelines of the file-level ingest modules. This section assumes you've read the above description of the new API.
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
branding.token=autopsy
|
branding.token=autopsy
|
||||||
nbjdk.active=JDK_1.8_66
|
|
||||||
# Version of platform that is automatically downloaded
|
# Version of platform that is automatically downloaded
|
||||||
# Note build.xml has similar definitions that should be kept in sync (manually)
|
# Note build.xml has similar definitions that should be kept in sync (manually)
|
||||||
netbeans-plat-version=8.0.2
|
netbeans-plat-version=8.0.2
|
||||||
@ -14,12 +13,15 @@ cluster.path=\
|
|||||||
${nbplatform.active.dir}/java:\
|
${nbplatform.active.dir}/java:\
|
||||||
${nbplatform.active.dir}/platform
|
${nbplatform.active.dir}/platform
|
||||||
disabled.modules=\
|
disabled.modules=\
|
||||||
|
org.apache.tools.ant.module,\
|
||||||
org.netbeans.api.debugger.jpda,\
|
org.netbeans.api.debugger.jpda,\
|
||||||
org.netbeans.api.java,\
|
org.netbeans.api.java,\
|
||||||
|
org.netbeans.api.maven,\
|
||||||
org.netbeans.lib.nbjavac,\
|
org.netbeans.lib.nbjavac,\
|
||||||
org.netbeans.libs.cglib,\
|
org.netbeans.libs.cglib,\
|
||||||
org.netbeans.libs.javacapi,\
|
org.netbeans.libs.javacapi,\
|
||||||
org.netbeans.libs.javacimpl,\
|
org.netbeans.libs.javacimpl,\
|
||||||
|
org.netbeans.libs.javafx,\
|
||||||
org.netbeans.libs.springframework,\
|
org.netbeans.libs.springframework,\
|
||||||
org.netbeans.modules.ant.browsetask,\
|
org.netbeans.modules.ant.browsetask,\
|
||||||
org.netbeans.modules.ant.debugger,\
|
org.netbeans.modules.ant.debugger,\
|
||||||
@ -31,6 +33,7 @@ disabled.modules=\
|
|||||||
org.netbeans.modules.dbschema,\
|
org.netbeans.modules.dbschema,\
|
||||||
org.netbeans.modules.debugger.jpda,\
|
org.netbeans.modules.debugger.jpda,\
|
||||||
org.netbeans.modules.debugger.jpda.ant,\
|
org.netbeans.modules.debugger.jpda.ant,\
|
||||||
|
org.netbeans.modules.debugger.jpda.js,\
|
||||||
org.netbeans.modules.debugger.jpda.kit,\
|
org.netbeans.modules.debugger.jpda.kit,\
|
||||||
org.netbeans.modules.debugger.jpda.projects,\
|
org.netbeans.modules.debugger.jpda.projects,\
|
||||||
org.netbeans.modules.debugger.jpda.ui,\
|
org.netbeans.modules.debugger.jpda.ui,\
|
||||||
@ -43,6 +46,8 @@ disabled.modules=\
|
|||||||
org.netbeans.modules.form.nb,\
|
org.netbeans.modules.form.nb,\
|
||||||
org.netbeans.modules.form.refactoring,\
|
org.netbeans.modules.form.refactoring,\
|
||||||
org.netbeans.modules.hibernate,\
|
org.netbeans.modules.hibernate,\
|
||||||
|
org.netbeans.modules.hibernate4lib,\
|
||||||
|
org.netbeans.modules.hibernatelib,\
|
||||||
org.netbeans.modules.hudson.ant,\
|
org.netbeans.modules.hudson.ant,\
|
||||||
org.netbeans.modules.hudson.maven,\
|
org.netbeans.modules.hudson.maven,\
|
||||||
org.netbeans.modules.i18n,\
|
org.netbeans.modules.i18n,\
|
||||||
@ -64,16 +69,21 @@ disabled.modules=\
|
|||||||
org.netbeans.modules.java.examples,\
|
org.netbeans.modules.java.examples,\
|
||||||
org.netbeans.modules.java.freeform,\
|
org.netbeans.modules.java.freeform,\
|
||||||
org.netbeans.modules.java.guards,\
|
org.netbeans.modules.java.guards,\
|
||||||
|
org.netbeans.modules.java.helpset,\
|
||||||
org.netbeans.modules.java.hints,\
|
org.netbeans.modules.java.hints,\
|
||||||
org.netbeans.modules.java.hints.declarative,\
|
org.netbeans.modules.java.hints.declarative,\
|
||||||
org.netbeans.modules.java.hints.declarative.test,\
|
org.netbeans.modules.java.hints.declarative.test,\
|
||||||
org.netbeans.modules.java.hints.legacy.spi,\
|
org.netbeans.modules.java.hints.legacy.spi,\
|
||||||
org.netbeans.modules.java.hints.test,\
|
org.netbeans.modules.java.hints.test,\
|
||||||
org.netbeans.modules.java.hints.ui,\
|
org.netbeans.modules.java.hints.ui,\
|
||||||
|
org.netbeans.modules.java.j2sedeploy,\
|
||||||
|
org.netbeans.modules.java.j2seembedded,\
|
||||||
org.netbeans.modules.java.j2seplatform,\
|
org.netbeans.modules.java.j2seplatform,\
|
||||||
|
org.netbeans.modules.java.j2seprofiles,\
|
||||||
org.netbeans.modules.java.j2seproject,\
|
org.netbeans.modules.java.j2seproject,\
|
||||||
org.netbeans.modules.java.kit,\
|
org.netbeans.modules.java.kit,\
|
||||||
org.netbeans.modules.java.lexer,\
|
org.netbeans.modules.java.lexer,\
|
||||||
|
org.netbeans.modules.java.metrics,\
|
||||||
org.netbeans.modules.java.navigation,\
|
org.netbeans.modules.java.navigation,\
|
||||||
org.netbeans.modules.java.platform,\
|
org.netbeans.modules.java.platform,\
|
||||||
org.netbeans.modules.java.preprocessorbridge,\
|
org.netbeans.modules.java.preprocessorbridge,\
|
||||||
@ -85,6 +95,7 @@ disabled.modules=\
|
|||||||
org.netbeans.modules.java.sourceui,\
|
org.netbeans.modules.java.sourceui,\
|
||||||
org.netbeans.modules.java.testrunner,\
|
org.netbeans.modules.java.testrunner,\
|
||||||
org.netbeans.modules.javadoc,\
|
org.netbeans.modules.javadoc,\
|
||||||
|
org.netbeans.modules.javaee.injection,\
|
||||||
org.netbeans.modules.javawebstart,\
|
org.netbeans.modules.javawebstart,\
|
||||||
org.netbeans.modules.jellytools.java,\
|
org.netbeans.modules.jellytools.java,\
|
||||||
org.netbeans.modules.junit,\
|
org.netbeans.modules.junit,\
|
||||||
@ -105,6 +116,8 @@ disabled.modules=\
|
|||||||
org.netbeans.modules.maven.repository,\
|
org.netbeans.modules.maven.repository,\
|
||||||
org.netbeans.modules.maven.search,\
|
org.netbeans.modules.maven.search,\
|
||||||
org.netbeans.modules.maven.spring,\
|
org.netbeans.modules.maven.spring,\
|
||||||
|
org.netbeans.modules.nashorn.execution,\
|
||||||
|
org.netbeans.modules.performance,\
|
||||||
org.netbeans.modules.performance.java,\
|
org.netbeans.modules.performance.java,\
|
||||||
org.netbeans.modules.projectimport.eclipse.core,\
|
org.netbeans.modules.projectimport.eclipse.core,\
|
||||||
org.netbeans.modules.projectimport.eclipse.j2se,\
|
org.netbeans.modules.projectimport.eclipse.j2se,\
|
||||||
@ -117,6 +130,7 @@ disabled.modules=\
|
|||||||
org.netbeans.modules.websvc.jaxws21,\
|
org.netbeans.modules.websvc.jaxws21,\
|
||||||
org.netbeans.modules.websvc.jaxws21api,\
|
org.netbeans.modules.websvc.jaxws21api,\
|
||||||
org.netbeans.modules.websvc.saas.codegen.java,\
|
org.netbeans.modules.websvc.saas.codegen.java,\
|
||||||
|
org.netbeans.modules.whitelist,\
|
||||||
org.netbeans.modules.xml.jaxb,\
|
org.netbeans.modules.xml.jaxb,\
|
||||||
org.netbeans.modules.xml.tools.java,\
|
org.netbeans.modules.xml.tools.java,\
|
||||||
org.netbeans.spi.java.hints
|
org.netbeans.spi.java.hints
|
Loading…
x
Reference in New Issue
Block a user