diff --git a/Core/build.xml b/Core/build.xml index 31379f9772bd33493c207ad50d7c25fd69575ca9..40b8e966a3777859f302ef93dfa348e252a949ca 100644 --- a/Core/build.xml +++ b/Core/build.xml @@ -89,7 +89,10 @@ <fileset dir="${thirdparty.dir}/ImageMagick-7.0.10-27-portable-Q16-x64"/> </copy> - <mkdir dir="${basedir}/release/DomainCategorization"/> + <!--Copy DomainCategorization to release--> + <copy todir="${basedir}/release/DomainCategorization" > + <fileset dir="${thirdparty.dir}/DomainCategorization"/> + </copy> <!-- The 'libgstlibav.dll' file is too big to store on GitHub, so we have it stored in a ZIP file. We'll extract it in place and remove diff --git a/Core/src/org/sleuthkit/autopsy/url/analytics/AddEditCategoryDialog.form b/Core/src/org/sleuthkit/autopsy/url/analytics/AddEditCategoryDialog.form index 4e51979df7cdeda40ff8d5e43809f9d4dd0a0bf5..afaf4d85dc1a3a53031cdf28bfc30c47455534e7 100644 --- a/Core/src/org/sleuthkit/autopsy/url/analytics/AddEditCategoryDialog.form +++ b/Core/src/org/sleuthkit/autopsy/url/analytics/AddEditCategoryDialog.form @@ -78,8 +78,14 @@ </Layout> <SubComponents> <Component class="javax.swing.JTextField" name="categoryTextField"> + <Events> + <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="categoryTextFieldActionPerformed"/> + </Events> </Component> <Component class="javax.swing.JTextField" name="domainSuffixTextField"> + <Events> + <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="domainSuffixTextFieldActionPerformed"/> + </Events> </Component> <Component class="javax.swing.JLabel" name="categoryLabel"> <Properties> diff --git a/Core/src/org/sleuthkit/autopsy/url/analytics/AddEditCategoryDialog.java b/Core/src/org/sleuthkit/autopsy/url/analytics/AddEditCategoryDialog.java index 771b826577cf29fa4a7b7cb0e60545cf1e586804..3a47d9060a2a9045955358c718e108b15156f4fe 100644 --- a/Core/src/org/sleuthkit/autopsy/url/analytics/AddEditCategoryDialog.java +++ b/Core/src/org/sleuthkit/autopsy/url/analytics/AddEditCategoryDialog.java @@ -32,6 +32,12 @@ public AddEditCategoryDialog(java.awt.Frame parent, Set<String> currentSuffixesT this.currentSuffixesToUpper = currentSuffixesToUpper; this.currentSuffix = currentSuffix; this.currentCategory = currentCategory; + + if (currentSuffix == null && currentCategory == null) { + + } else { + + } } /** @@ -114,6 +120,18 @@ private void initComponents() { setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE); + categoryTextField.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + categoryTextFieldActionPerformed(evt); + } + }); + + domainSuffixTextField.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + domainSuffixTextFieldActionPerformed(evt); + } + }); + categoryLabel.setText(org.openide.util.NbBundle.getMessage(AddEditCategoryDialog.class, "AddEditCategoryDialog.categoryLabel.text")); // NOI18N domainSuffixLabel.setText(org.openide.util.NbBundle.getMessage(AddEditCategoryDialog.class, "AddEditCategoryDialog.domainSuffixLabel.text")); // NOI18N @@ -193,6 +211,14 @@ private void cancelButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN- dispose(); }//GEN-LAST:event_cancelButtonActionPerformed + private void domainSuffixTextFieldActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_domainSuffixTextFieldActionPerformed + onValueUpdate(domainSuffixTextField.getText(), categoryTextField.getText()); + }//GEN-LAST:event_domainSuffixTextFieldActionPerformed + + private void categoryTextFieldActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_categoryTextFieldActionPerformed + onValueUpdate(domainSuffixTextField.getText(), categoryTextField.getText()); + }//GEN-LAST:event_categoryTextFieldActionPerformed + // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JTextField categoryTextField; diff --git a/Core/src/org/sleuthkit/autopsy/url/analytics/Bundle.properties b/Core/src/org/sleuthkit/autopsy/url/analytics/Bundle.properties index 58a1d65fbbf010a3f9d5af11ba731fff50211f4b..7c11e5c1877a2361c53dbde4591d4525f8396b99 100644 --- a/Core/src/org/sleuthkit/autopsy/url/analytics/Bundle.properties +++ b/Core/src/org/sleuthkit/autopsy/url/analytics/Bundle.properties @@ -3,4 +3,11 @@ WebCategoryOptionsController_keywords=Custom Web Categories AddEditCategoryDialog.categoryLabel.text=Category: AddEditCategoryDialog.domainSuffixLabel.text=Domain Suffix: AddEditCategoryDialog.saveButton.text=Save -AddEditCategoryDialog.cancelButton.text=Cancel \ No newline at end of file +AddEditCategoryDialog.cancelButton.text=Cancel +WebCategoriesOptionsPanel.panelDescription.text=This module allows you to find web categories based on host name. +WebCategoriesOptionsPanel.categoriesTitle.text=Categories: +WebCategoriesOptionsPanel.newEntryButton.text=New Entry +WebCategoriesOptionsPanel.editEntryButton.text=Edit Entry +WebCategoriesOptionsPanel.deleteEntryButton.text=Delete Entry +WebCategoriesOptionsPanel.importSetButton.text=Import Set +WebCategoriesOptionsPanel.exportSetButton.text=Export Set \ No newline at end of file diff --git a/Core/src/org/sleuthkit/autopsy/url/analytics/Bundle.properties-MERGED b/Core/src/org/sleuthkit/autopsy/url/analytics/Bundle.properties-MERGED index 655b63831ba92c4073d7f21d44d8044d342bee32..f97c373c6f70158128d2859c7e25ae1a0cd271ff 100644 --- a/Core/src/org/sleuthkit/autopsy/url/analytics/Bundle.properties-MERGED +++ b/Core/src/org/sleuthkit/autopsy/url/analytics/Bundle.properties-MERGED @@ -10,3 +10,10 @@ AddEditCategoryDialog.categoryLabel.text=Category: AddEditCategoryDialog.domainSuffixLabel.text=Domain Suffix: AddEditCategoryDialog.saveButton.text=Save AddEditCategoryDialog.cancelButton.text=Cancel +WebCategoriesOptionsPanel.panelDescription.text=This module allows you to find web categories based on host name. +WebCategoriesOptionsPanel.categoriesTitle.text=Categories: +WebCategoriesOptionsPanel.newEntryButton.text=New Entry +WebCategoriesOptionsPanel.editEntryButton.text=Edit Entry +WebCategoriesOptionsPanel.deleteEntryButton.text=Delete Entry +WebCategoriesOptionsPanel.importSetButton.text=Import Set +WebCategoriesOptionsPanel.exportSetButton.text=Export Set diff --git a/Core/src/org/sleuthkit/autopsy/url/analytics/WebCategoriesOptionsPanel.form b/Core/src/org/sleuthkit/autopsy/url/analytics/WebCategoriesOptionsPanel.form index 53d451c9fba77e998530d5a86bd8992ad564be89..15dbe8da75d2e57e582cdf888e427e236844cea1 100644 --- a/Core/src/org/sleuthkit/autopsy/url/analytics/WebCategoriesOptionsPanel.form +++ b/Core/src/org/sleuthkit/autopsy/url/analytics/WebCategoriesOptionsPanel.form @@ -19,11 +19,18 @@ <Component class="javax.swing.JLabel" name="panelDescription"> <Properties> <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> - <ResourceString bundle="org/sleuthkit/autopsy/datamodel/hosts/Bundle.properties" key="WebCategoriesOptionsPanel.panelDescription.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> + <ResourceString bundle="org/sleuthkit/autopsy/url/analytics/Bundle.properties" key="WebCategoriesOptionsPanel.panelDescription.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> </Property> <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor"> - <Border info="org.netbeans.modules.form.compat2.border.EtchedBorderInfo"> - <EtchetBorder/> + <Border info="org.netbeans.modules.form.compat2.border.CompoundBorderInfo"> + <CompoundBorder> + <Border PropertyName="outside" info="org.netbeans.modules.form.compat2.border.EtchedBorderInfo"> + <EtchetBorder/> + </Border> + <Border PropertyName="inside" info="org.netbeans.modules.form.compat2.border.EmptyBorderInfo"> + <EmptyBorder bottom="5" left="5" right="5" top="5"/> + </Border> + </CompoundBorder> </Border> </Property> </Properties> @@ -39,7 +46,9 @@ </Component> <Component class="javax.swing.JLabel" name="categoriesTitle"> <Properties> - <Property name="text" type="java.lang.String" value="Categories:"/> + <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> + <ResourceString bundle="org/sleuthkit/autopsy/url/analytics/Bundle.properties" key="WebCategoriesOptionsPanel.categoriesTitle.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> + </Property> </Properties> <AuxValues> <AuxValue name="JavaCodeGenerator_VariableLocal" type="java.lang.Boolean" value="true"/> @@ -86,7 +95,9 @@ </Container> <Component class="javax.swing.JButton" name="newEntryButton"> <Properties> - <Property name="text" type="java.lang.String" value="New Entry"/> + <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> + <ResourceString bundle="org/sleuthkit/autopsy/url/analytics/Bundle.properties" key="WebCategoriesOptionsPanel.newEntryButton.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> + </Property> </Properties> <Events> <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="newEntryButtonActionPerformed"/> @@ -103,7 +114,9 @@ </Component> <Component class="javax.swing.JButton" name="editEntryButton"> <Properties> - <Property name="text" type="java.lang.String" value="Edit Entry"/> + <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> + <ResourceString bundle="org/sleuthkit/autopsy/url/analytics/Bundle.properties" key="WebCategoriesOptionsPanel.editEntryButton.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> + </Property> </Properties> <Events> <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="editEntryButtonActionPerformed"/> @@ -116,7 +129,9 @@ </Component> <Component class="javax.swing.JButton" name="deleteEntryButton"> <Properties> - <Property name="text" type="java.lang.String" value="Delete Entry"/> + <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> + <ResourceString bundle="org/sleuthkit/autopsy/url/analytics/Bundle.properties" key="WebCategoriesOptionsPanel.deleteEntryButton.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> + </Property> </Properties> <Events> <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="deleteEntryButtonActionPerformed"/> @@ -129,7 +144,9 @@ </Component> <Component class="javax.swing.JButton" name="importSetButton"> <Properties> - <Property name="text" type="java.lang.String" value="Import Set"/> + <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> + <ResourceString bundle="org/sleuthkit/autopsy/url/analytics/Bundle.properties" key="WebCategoriesOptionsPanel.importSetButton.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> + </Property> </Properties> <Events> <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="importSetButtonActionPerformed"/> @@ -146,7 +163,9 @@ </Component> <Component class="javax.swing.JButton" name="exportSetButton"> <Properties> - <Property name="text" type="java.lang.String" value="Export Set"/> + <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> + <ResourceString bundle="org/sleuthkit/autopsy/url/analytics/Bundle.properties" key="WebCategoriesOptionsPanel.exportSetButton.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> + </Property> </Properties> <Events> <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="exportSetButtonActionPerformed"/> diff --git a/Core/src/org/sleuthkit/autopsy/url/analytics/WebCategoriesOptionsPanel.java b/Core/src/org/sleuthkit/autopsy/url/analytics/WebCategoriesOptionsPanel.java index dbe19cd16a7b6e4fc9d0f90efbf43723ea41b536..841969c65efd4060402a4b3627fe6a20fcac1b19 100644 --- a/Core/src/org/sleuthkit/autopsy/url/analytics/WebCategoriesOptionsPanel.java +++ b/Core/src/org/sleuthkit/autopsy/url/analytics/WebCategoriesOptionsPanel.java @@ -60,7 +60,7 @@ private void initComponents() { setLayout(new java.awt.GridBagLayout()); panelDescription.setText(org.openide.util.NbBundle.getMessage(WebCategoriesOptionsPanel.class, "WebCategoriesOptionsPanel.panelDescription.text")); // NOI18N - panelDescription.setBorder(javax.swing.BorderFactory.createEtchedBorder()); + panelDescription.setBorder(javax.swing.BorderFactory.createCompoundBorder(javax.swing.BorderFactory.createEtchedBorder(), javax.swing.BorderFactory.createEmptyBorder(5, 5, 5, 5))); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridwidth = 3; gridBagConstraints.fill = java.awt.GridBagConstraints.VERTICAL; @@ -68,7 +68,7 @@ private void initComponents() { gridBagConstraints.insets = new java.awt.Insets(10, 10, 10, 0); add(panelDescription, gridBagConstraints); - categoriesTitle.setText("Categories:"); + categoriesTitle.setText(org.openide.util.NbBundle.getMessage(WebCategoriesOptionsPanel.class, "WebCategoriesOptionsPanel.categoriesTitle.text")); // NOI18N gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 1; @@ -99,7 +99,7 @@ private void initComponents() { gridBagConstraints.insets = new java.awt.Insets(0, 10, 5, 0); add(categoriesScrollPane, gridBagConstraints); - newEntryButton.setText("New Entry"); + newEntryButton.setText(org.openide.util.NbBundle.getMessage(WebCategoriesOptionsPanel.class, "WebCategoriesOptionsPanel.newEntryButton.text")); // NOI18N newEntryButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { newEntryButtonActionPerformed(evt); @@ -112,7 +112,7 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { gridBagConstraints.insets = new java.awt.Insets(0, 10, 5, 5); add(newEntryButton, gridBagConstraints); - editEntryButton.setText("Edit Entry"); + editEntryButton.setText(org.openide.util.NbBundle.getMessage(WebCategoriesOptionsPanel.class, "WebCategoriesOptionsPanel.editEntryButton.text")); // NOI18N editEntryButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { editEntryButtonActionPerformed(evt); @@ -125,7 +125,7 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { gridBagConstraints.insets = new java.awt.Insets(0, 0, 5, 5); add(editEntryButton, gridBagConstraints); - deleteEntryButton.setText("Delete Entry"); + deleteEntryButton.setText(org.openide.util.NbBundle.getMessage(WebCategoriesOptionsPanel.class, "WebCategoriesOptionsPanel.deleteEntryButton.text")); // NOI18N deleteEntryButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { deleteEntryButtonActionPerformed(evt); @@ -138,7 +138,7 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { gridBagConstraints.insets = new java.awt.Insets(0, 0, 5, 5); add(deleteEntryButton, gridBagConstraints); - importSetButton.setText("Import Set"); + importSetButton.setText(org.openide.util.NbBundle.getMessage(WebCategoriesOptionsPanel.class, "WebCategoriesOptionsPanel.importSetButton.text")); // NOI18N importSetButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { importSetButtonActionPerformed(evt); @@ -151,7 +151,7 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { gridBagConstraints.insets = new java.awt.Insets(0, 10, 5, 5); add(importSetButton, gridBagConstraints); - exportSetButton.setText("Export Set"); + exportSetButton.setText(org.openide.util.NbBundle.getMessage(WebCategoriesOptionsPanel.class, "WebCategoriesOptionsPanel.exportSetButton.text")); // NOI18N exportSetButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { exportSetButtonActionPerformed(evt); diff --git a/thirdparty/DomainCategorization/README.txt b/thirdparty/DomainCategorization/README.txt new file mode 100644 index 0000000000000000000000000000000000000000..4dfe31b7acc5d0ccc9d8f0b6f431ef8223980804 --- /dev/null +++ b/thirdparty/DomainCategorization/README.txt @@ -0,0 +1 @@ +This is a folder containing information for web domain categorization and custom categories. \ No newline at end of file