diff --git a/Core/src/org/sleuthkit/autopsy/casemodule/CueBannerPanel.java b/Core/src/org/sleuthkit/autopsy/casemodule/CueBannerPanel.java index 9326bbb8d9..22c2485b16 100644 --- a/Core/src/org/sleuthkit/autopsy/casemodule/CueBannerPanel.java +++ b/Core/src/org/sleuthkit/autopsy/casemodule/CueBannerPanel.java @@ -55,6 +55,7 @@ public class CueBannerPanel extends javax.swing.JPanel { ImageIcon icon = new ImageIcon(cl.getResource(welcomeLogo)); autopsyLogo.setIcon(icon); } + refresh(); } /** diff --git a/Core/src/org/sleuthkit/autopsy/ingest/IngestManager.java b/Core/src/org/sleuthkit/autopsy/ingest/IngestManager.java index 840c4cd732..4ddd67ac6f 100644 --- a/Core/src/org/sleuthkit/autopsy/ingest/IngestManager.java +++ b/Core/src/org/sleuthkit/autopsy/ingest/IngestManager.java @@ -594,6 +594,8 @@ public class IngestManager { JOptionPane.showMessageDialog(null, message, Bundle.IngestManager_startupErr_dlgTitle(), JOptionPane.ERROR_MESSAGE); }); } + // abort ingest + return new IngestJobStartResult(null, new IngestManagerException("Errors occurred while starting ingest"), errors); } } return new IngestJobStartResult(job, null, errors); diff --git a/Core/src/org/sleuthkit/autopsy/timeline/OpenTimelineAction.java b/Core/src/org/sleuthkit/autopsy/timeline/OpenTimelineAction.java index 47d7f6940d..54d68cd7d9 100644 --- a/Core/src/org/sleuthkit/autopsy/timeline/OpenTimelineAction.java +++ b/Core/src/org/sleuthkit/autopsy/timeline/OpenTimelineAction.java @@ -140,7 +140,7 @@ public class OpenTimelineAction extends CallableSystemAction implements Presente */ @Override public Component getToolbarPresenter() { - ImageIcon icon = new ImageIcon("Core/src/org/sleuthkit/autopsy/timeline/images/btn_icon_timeline_colorized_26.png"); //NON-NLS + ImageIcon icon = new ImageIcon(getClass().getResource("images/btn_icon_timeline_colorized_26.png")); //NON-NLS toolbarButton.setIcon(icon); toolbarButton.setText(this.getName()); diff --git a/Core/src/org/sleuthkit/autopsy/timeline/snapshot/SnapShotReportWriter.java b/Core/src/org/sleuthkit/autopsy/timeline/snapshot/SnapShotReportWriter.java index 917d2a0881..4f4580bcd6 100644 --- a/Core/src/org/sleuthkit/autopsy/timeline/snapshot/SnapShotReportWriter.java +++ b/Core/src/org/sleuthkit/autopsy/timeline/snapshot/SnapShotReportWriter.java @@ -135,7 +135,8 @@ public class SnapShotReportWriter { private Path writeIndexHTML() throws IOException { //make a map of context objects to resolve template paramaters against HashMap indexContext = new HashMap<>(); - indexContext.put("currentCase", currentCase); //NON-NLS + indexContext.put("reportBranding", reportBranding); //NON-NLS + indexContext.put("reportName", reportName); //NON-NLS Path reportIndexFile = reportFolderPath.resolve("index.html"); //NON-NLS fillTemplateAndWrite("/org/sleuthkit/autopsy/timeline/snapshot/index_template.html", "Index", indexContext, reportIndexFile); //NON-NLS @@ -206,9 +207,15 @@ public class SnapShotReportWriter { Files.copy(navStream, reportFolderPath.resolve("nav.html")); //NON-NLS } //copy favicon - try (InputStream faviconStream = SnapShotReportWriter.class.getResourceAsStream("/org/sleuthkit/autopsy/report/images/favicon.ico")) { //NON-NLS - Files.copy(faviconStream, reportFolderPath.resolve("favicon.ico")); //NON-NLS + if (StringUtils.isBlank(agencyLogoPath)) { + // use default Autopsy icon if custom icon is not set + try (InputStream faviconStream = SnapShotReportWriter.class.getResourceAsStream("/org/sleuthkit/autopsy/report/images/favicon.ico")) { //NON-NLS + Files.copy(faviconStream, reportFolderPath.resolve("favicon.ico")); //NON-NLS + } + } else { + Files.copy(Files.newInputStream(Paths.get(agencyLogoPath)), reportFolderPath.resolve("favicon.ico")); //NON-NLS } + //copy report summary icon try (InputStream summaryStream = SnapShotReportWriter.class.getResourceAsStream("/org/sleuthkit/autopsy/report/images/summary.png")) { //NON-NLS Files.copy(summaryStream, reportFolderPath.resolve("summary.png")); //NON-NLS diff --git a/Core/src/org/sleuthkit/autopsy/timeline/snapshot/index_template.html b/Core/src/org/sleuthkit/autopsy/timeline/snapshot/index_template.html index 11a0620ca4..91a9e37698 100644 --- a/Core/src/org/sleuthkit/autopsy/timeline/snapshot/index_template.html +++ b/Core/src/org/sleuthkit/autopsy/timeline/snapshot/index_template.html @@ -1,6 +1,6 @@ - Autopsy Report for {{curentCase.getName}} + {{reportBranding.getReportTitle}} for {{reportName}} diff --git a/Core/src/org/sleuthkit/autopsy/timeline/snapshot/summary_template.html b/Core/src/org/sleuthkit/autopsy/timeline/snapshot/summary_template.html index 963c6d2096..dda4a3bc1f 100644 --- a/Core/src/org/sleuthkit/autopsy/timeline/snapshot/summary_template.html +++ b/Core/src/org/sleuthkit/autopsy/timeline/snapshot/summary_template.html @@ -13,7 +13,7 @@
{{#reportBranding.getAgencyLogoPath}}
- +
{{/reportBranding.getAgencyLogoPath}} diff --git a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/GlobalEditListPanel.java b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/GlobalEditListPanel.java index 8dfbd71662..a381e98059 100644 --- a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/GlobalEditListPanel.java +++ b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/GlobalEditListPanel.java @@ -721,4 +721,11 @@ class GlobalEditListPanel extends javax.swing.JPanel implements ListSelectionLis return this; } } + + /** + * Set the keyboard focus to new keyword textbox. + */ + void setFocusOnKeywordTextBox() { + addWordField.requestFocus(); + } } diff --git a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/GlobalListSettingsPanel.java b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/GlobalListSettingsPanel.java index a3573c49ec..240e7afead 100644 --- a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/GlobalListSettingsPanel.java +++ b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/GlobalListSettingsPanel.java @@ -28,7 +28,9 @@ import org.sleuthkit.autopsy.corecomponents.OptionsPanel; final class GlobalListSettingsPanel extends javax.swing.JPanel implements OptionsPanel { - private final GlobalListsManagementPanel listsManagementPanel = new GlobalListsManagementPanel(); + private static final long serialVersionUID = 1L; + + private final GlobalListsManagementPanel listsManagementPanel = new GlobalListsManagementPanel(this); private final GlobalEditListPanel editListPanel = new GlobalEditListPanel(); GlobalListSettingsPanel() { @@ -110,7 +112,7 @@ final class GlobalListSettingsPanel extends javax.swing.JPanel implements Option mainSplitPane.revalidate(); mainSplitPane.repaint(); } - + @Override public void addPropertyChangeListener(PropertyChangeListener l) { listsManagementPanel.addPropertyChangeListener(l); @@ -135,6 +137,13 @@ final class GlobalListSettingsPanel extends javax.swing.JPanel implements Option listsManagementPanel.load(); } + /** + * Set the keyboard focus to new keyword textbox. + */ + void setFocusOnKeywordTextBox() { + editListPanel.setFocusOnKeywordTextBox(); + } + /** * This method is called from within the constructor to initialize the form. * WARNING: Do NOT modify this code. The content of this method is always diff --git a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/GlobalListsManagementPanel.java b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/GlobalListsManagementPanel.java index 7a135aea18..070fe4b99f 100644 --- a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/GlobalListsManagementPanel.java +++ b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/GlobalListsManagementPanel.java @@ -39,11 +39,15 @@ import org.sleuthkit.autopsy.coreutils.Logger; */ class GlobalListsManagementPanel extends javax.swing.JPanel implements OptionsPanel { + private static final long serialVersionUID = 1L; + private Logger logger = Logger.getLogger(GlobalListsManagementPanel.class.getName()); private KeywordListTableModel tableModel; private final PropertyChangeSupport pcs = new PropertyChangeSupport(this); + private final org.sleuthkit.autopsy.keywordsearch.GlobalListSettingsPanel globalListSettingsPanel; - GlobalListsManagementPanel() { + GlobalListsManagementPanel(org.sleuthkit.autopsy.keywordsearch.GlobalListSettingsPanel gsp) { + this.globalListSettingsPanel = gsp; tableModel = new KeywordListTableModel(); initComponents(); customizeComponents(); @@ -78,7 +82,7 @@ class GlobalListsManagementPanel extends javax.swing.JPanel implements OptionsPa * listsTable.getSelectionModel().clearSelection(); } } } }); */ } - + @Override public void addPropertyChangeListener(PropertyChangeListener l) { pcs.addPropertyChangeListener(l); @@ -210,6 +214,7 @@ class GlobalListsManagementPanel extends javax.swing.JPanel implements OptionsPa } } pcs.firePropertyChange(OptionsPanelController.PROP_CHANGED, null, null); + globalListSettingsPanel.setFocusOnKeywordTextBox(); }//GEN-LAST:event_newListButtonActionPerformed private void importButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_importButtonActionPerformed diff --git a/docs/doxygen-user/advanced.dox b/docs/doxygen-user/advanced.dox new file mode 100755 index 0000000000..cdfb09406b --- /dev/null +++ b/docs/doxygen-user/advanced.dox @@ -0,0 +1,9 @@ +/*! \page advanced_page Advanced Settings + +If you are behind a proxy and need access to a network with Autopsy or one of the modules, you may set your proxy information in the _Tools_, _Options_, _General_ tab as shown in the screenshot below. + +

+\image html proxySettings.PNG +

+ +*/ \ No newline at end of file diff --git a/docs/doxygen-user/images/proxySettings.PNG b/docs/doxygen-user/images/proxySettings.PNG new file mode 100755 index 0000000000..4ef7fc3424 Binary files /dev/null and b/docs/doxygen-user/images/proxySettings.PNG differ diff --git a/docs/doxygen-user/installSolr.dox b/docs/doxygen-user/installSolr.dox index b609e92cec..2b299586fc 100755 --- a/docs/doxygen-user/installSolr.dox +++ b/docs/doxygen-user/installSolr.dox @@ -81,11 +81,12 @@ The log file should end up looking like this (modified lines are highlighted in

cmd /c C:\\Bitnami\\solr-4.10.3-0\\apache-solr\\scripts\\serviceinstall.bat INSTALL

- Your command prompt should look like the screenshot below. Very likely it will say "The solrJetty service could not be started." This is okay. + Note the argument "INSTALL" is case sensitive. Your command prompt should look like the screenshot below. Very likely it will say "The solrJetty service could not be started." This is okay.

\image html solrinstall1.PNG

-8. Press _Start_, type _services.msc_, and press _Enter_. Find _solrJetty_. If the service is running, press _Stop the service_, then double click it, and switch to the _Log On_ tab to change the logon credentials to a user who will have access to read and write the primary shared drive. If the machine is on a domain, the Account Name will be in the form of _DOMAINNAME\\username_ as shown in the example below. Note that in the screenshot below, the domain name is _DOMAIN_ and the user name is _username_. These are just examples, not real values. +8. Press _Start_, type _services.msc_, and press _Enter_. Find _solrJetty_. If the service is running, press _Stop the service_, then double click it, and switch to the _Log On_ tab to change the logon credentials to a user who will have access to read and write the primary shared drive. Note that selecting "Local System account" will work only if Solr service and case output folders are on the same machine. Using "Local System account" to run Solr service and having case output folders on a different machine will result in Solr being unable to create index files. +
If the machine is on a domain, the Account Name will be in the form of _DOMAINNAME\\username_ as shown in the example below. Note that in the screenshot below, the domain name is _DOMAIN_ and the user name is _username_. These are just examples, not real values.

\image html solrinstall2.PNG
diff --git a/docs/doxygen-user/main.dox b/docs/doxygen-user/main.dox index e457dd86a0..4152f6f362 100644 --- a/docs/doxygen-user/main.dox +++ b/docs/doxygen-user/main.dox @@ -55,6 +55,7 @@ The following topics are available here: - \subpage windows_authentication - \subpage multiuser_sec_page - \subpage multiuser_page +- \subpage advanced_page If the topic you need is not listed, refer to the Autopsy Wiki or join the SleuthKit User List at SourceForge. diff --git a/docs/doxygen-user/performance.dox b/docs/doxygen-user/performance.dox index 763eb7cb6c..7928cefd1c 100644 --- a/docs/doxygen-user/performance.dox +++ b/docs/doxygen-user/performance.dox @@ -6,7 +6,7 @@ After installing Autopsy, there are several hardware-based things that we sugges - Run Autopsy from the Start Menu or desktop - When presented with the case creation splash screen, cancel/close the window - Select "Tools", "Options" - - On the "Autopsy" tab, there is a drop down for _Number of threads to use for file ingest_. We recommend you set this value 4. If you set this number too high, performance can degrade because the pipelines are fighting for the same physical resources. Individual testing should be done to find an optimal setting. + - On the "Autopsy" tab, there is a drop down for _Number of threads to use for file ingest_. We recommend you set this value 4. If you set this number too high, performance can degrade because the pipelines are fighting for the same physical resources. Individual testing should be done to find an optimal setting, but our testing reveals that for most systems and setups, after four threads, the machine is I/O bound anyway, and increasing this number beyond 4 may actually reduce performance. - After each change, restart Autopsy to let this setting take effect.