revert kws changes as out of scope

This commit is contained in:
Greg DiCristofaro 2022-05-17 16:00:28 -04:00
parent 6a215b5c4d
commit 8ff0976070
3 changed files with 40 additions and 61 deletions

View File

@ -18,8 +18,6 @@
*/
package org.sleuthkit.autopsy.keywordsearch;
import com.google.common.annotations.Beta;
import java.nio.file.Paths;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
@ -28,21 +26,18 @@ import java.util.logging.Level;
import org.openide.util.NbBundle;
import org.sleuthkit.autopsy.coreutils.Logger;
import org.sleuthkit.autopsy.coreutils.ModuleSettings;
import org.sleuthkit.autopsy.coreutils.PlatformUtil;
import org.sleuthkit.autopsy.coreutils.StringExtract;
import org.sleuthkit.autopsy.coreutils.StringExtract.StringExtractUnicodeTable.SCRIPT;
import org.sleuthkit.autopsy.keywordsearch.KeywordSearchIngestModule.StringsExtractOptions;
import org.sleuthkit.autopsy.keywordsearch.KeywordSearchIngestModule.UpdateFrequency;
//This file contains constants and settings for KeywordSearch
@Beta
public class KeywordSearchSettings {
class KeywordSearchSettings {
public static final String MODULE_NAME = NbBundle.getMessage(KeywordSearchSettings.class, "KeywordSearchSettings.moduleName.text");
static final String PROPERTIES_OPTIONS = NbBundle.getMessage(KeywordSearchSettings.class, "KeywordSearchSettings.properties_options.text", MODULE_NAME);
static final String PROPERTIES_NSRL = NbBundle.getMessage(KeywordSearchSettings.class, "KeywordSearchSettings.propertiesNSRL.text", MODULE_NAME);
static final String PROPERTIES_SCRIPTS = NbBundle.getMessage(KeywordSearchSettings.class, "KeywordSearchSettings.propertiesScripts.text", MODULE_NAME);
static final String BASE_PATH = Paths.get(PlatformUtil.getUserConfigDirectory(), MODULE_NAME).toString();
static final String SHOW_SNIPPETS = "showSnippets"; //NON-NLS
static final boolean DEFAULT_SHOW_SNIPPETS = true;
static final String OCR_ENABLED = "ocrEnabled"; //NON-NLS
@ -55,31 +50,14 @@ public class KeywordSearchSettings {
private static List<StringExtract.StringExtractUnicodeTable.SCRIPT> stringExtractScripts = new ArrayList<>();
private static Map<String, String> stringExtractOptions = new HashMap<>();
/**
* @return The full path to the keyword search settings folder.
*/
public static String getBaseSettingsPath() {
return BASE_PATH;
}
/**
* Returns the module settings resource name to be used for keyword search settings.
* @param name The original name.
* @return The module settings resource.
*/
static String getModuleSettingsResource(String name) {
return Paths.get(MODULE_NAME, name).toString();
}
/**
* Gets the update Frequency from KeywordSearch_Options.properties
*
* @return KeywordSearchIngestModule's update frequency
*/
static UpdateFrequency getUpdateFrequency() {
if (ModuleSettings.getConfigSetting(getModuleSettingsResource(PROPERTIES_OPTIONS), "UpdateFrequency") != null) { //NON-NLS
return UpdateFrequency.valueOf(ModuleSettings.getConfigSetting(getModuleSettingsResource(PROPERTIES_OPTIONS), "UpdateFrequency")); //NON-NLS
if (ModuleSettings.getConfigSetting(PROPERTIES_OPTIONS, "UpdateFrequency") != null) { //NON-NLS
return UpdateFrequency.valueOf(ModuleSettings.getConfigSetting(PROPERTIES_OPTIONS, "UpdateFrequency")); //NON-NLS
}
//if it failed, return the default/last known value
logger.log(Level.WARNING, "Could not read property for UpdateFrequency, returning backup value."); //NON-NLS
@ -92,7 +70,7 @@ public class KeywordSearchSettings {
* @param freq Sets KeywordSearchIngestModule to this value.
*/
static void setUpdateFrequency(UpdateFrequency freq) {
ModuleSettings.setConfigSetting(getModuleSettingsResource(PROPERTIES_OPTIONS), "UpdateFrequency", freq.name()); //NON-NLS
ModuleSettings.setConfigSetting(PROPERTIES_OPTIONS, "UpdateFrequency", freq.name()); //NON-NLS
UpdateFreq = freq;
}
@ -103,7 +81,7 @@ public class KeywordSearchSettings {
* @param skip
*/
static void setSkipKnown(boolean skip) {
ModuleSettings.setConfigSetting(getModuleSettingsResource(PROPERTIES_NSRL), "SkipKnown", Boolean.toString(skip)); //NON-NLS
ModuleSettings.setConfigSetting(PROPERTIES_NSRL, "SkipKnown", Boolean.toString(skip)); //NON-NLS
skipKnown = skip;
}
@ -114,8 +92,8 @@ public class KeywordSearchSettings {
* @return skip setting
*/
static boolean getSkipKnown() {
if (ModuleSettings.getConfigSetting(getModuleSettingsResource(PROPERTIES_NSRL), "SkipKnown") != null) { //NON-NLS
return Boolean.parseBoolean(ModuleSettings.getConfigSetting(getModuleSettingsResource(PROPERTIES_NSRL), "SkipKnown")); //NON-NLS
if (ModuleSettings.getConfigSetting(PROPERTIES_NSRL, "SkipKnown") != null) { //NON-NLS
return Boolean.parseBoolean(ModuleSettings.getConfigSetting(PROPERTIES_NSRL, "SkipKnown")); //NON-NLS
}
//if it fails, return the default/last known value
logger.log(Level.WARNING, "Could not read property for SkipKnown, returning backup value."); //NON-NLS
@ -132,14 +110,14 @@ public class KeywordSearchSettings {
stringExtractScripts.addAll(scripts);
//Disabling scripts that weren't selected
for (String s : ModuleSettings.getConfigSettings(getModuleSettingsResource(PROPERTIES_SCRIPTS)).keySet()) {
for (String s : ModuleSettings.getConfigSettings(PROPERTIES_SCRIPTS).keySet()) {
if (!scripts.contains(StringExtract.StringExtractUnicodeTable.SCRIPT.valueOf(s))) {
ModuleSettings.setConfigSetting(getModuleSettingsResource(PROPERTIES_SCRIPTS), s, "false"); //NON-NLS
ModuleSettings.setConfigSetting(PROPERTIES_SCRIPTS, s, "false"); //NON-NLS
}
}
//Writing and enabling selected scripts
for (StringExtract.StringExtractUnicodeTable.SCRIPT s : stringExtractScripts) {
ModuleSettings.setConfigSetting(getModuleSettingsResource(PROPERTIES_SCRIPTS), s.name(), "true"); //NON-NLS
ModuleSettings.setConfigSetting(PROPERTIES_SCRIPTS, s.name(), "true"); //NON-NLS
}
}
@ -152,7 +130,7 @@ public class KeywordSearchSettings {
*/
static void setStringExtractOption(String key, String val) {
stringExtractOptions.put(key, val);
ModuleSettings.setConfigSetting(getModuleSettingsResource(PROPERTIES_OPTIONS), key, val);
ModuleSettings.setConfigSetting(PROPERTIES_OPTIONS, key, val);
}
/**
@ -164,8 +142,8 @@ public class KeywordSearchSettings {
*/
@Deprecated
static boolean getOcrOption() {
if (ModuleSettings.settingExists(getModuleSettingsResource(PROPERTIES_OPTIONS), OCR_ENABLED)) {
return ModuleSettings.getConfigSetting(getModuleSettingsResource(PROPERTIES_OPTIONS), OCR_ENABLED).equals("true"); //NON-NLS
if (ModuleSettings.settingExists(PROPERTIES_OPTIONS, OCR_ENABLED)) {
return ModuleSettings.getConfigSetting(PROPERTIES_OPTIONS, OCR_ENABLED).equals("true"); //NON-NLS
} else {
return OCR_ENABLED_DEFAULT;
}
@ -182,20 +160,20 @@ public class KeywordSearchSettings {
*/
@Deprecated
static boolean getLimitedOcrOption() {
if (ModuleSettings.settingExists(getModuleSettingsResource(PROPERTIES_OPTIONS), LIMITED_OCR_ENABLED)) {
return ModuleSettings.getConfigSetting(getModuleSettingsResource(PROPERTIES_OPTIONS), LIMITED_OCR_ENABLED).equals("true"); //NON-NLS
if (ModuleSettings.settingExists(PROPERTIES_OPTIONS, LIMITED_OCR_ENABLED)) {
return ModuleSettings.getConfigSetting(PROPERTIES_OPTIONS, LIMITED_OCR_ENABLED).equals("true"); //NON-NLS
} else {
return LIMITED_OCR_ENABLED_DEFAULT;
}
}
static void setShowSnippets(boolean showSnippets) {
ModuleSettings.setConfigSetting(getModuleSettingsResource(PROPERTIES_OPTIONS), SHOW_SNIPPETS, (showSnippets ? "true" : "false")); //NON-NLS
ModuleSettings.setConfigSetting(PROPERTIES_OPTIONS, SHOW_SNIPPETS, (showSnippets ? "true" : "false")); //NON-NLS
}
static boolean getShowSnippets() {
if (ModuleSettings.settingExists(getModuleSettingsResource(PROPERTIES_OPTIONS), SHOW_SNIPPETS)) {
return ModuleSettings.getConfigSetting(getModuleSettingsResource(PROPERTIES_OPTIONS), SHOW_SNIPPETS).equals("true"); //NON-NLS
if (ModuleSettings.settingExists(PROPERTIES_OPTIONS, SHOW_SNIPPETS)) {
return ModuleSettings.getConfigSetting(PROPERTIES_OPTIONS, SHOW_SNIPPETS).equals("true"); //NON-NLS
} else {
return DEFAULT_SHOW_SNIPPETS;
}
@ -207,9 +185,9 @@ public class KeywordSearchSettings {
* @return the list of currently used script
*/
static List<SCRIPT> getStringExtractScripts() {
if (ModuleSettings.getConfigSettings(getModuleSettingsResource(PROPERTIES_SCRIPTS)) != null && !ModuleSettings.getConfigSettings(getModuleSettingsResource(PROPERTIES_SCRIPTS)).isEmpty()) {
if (ModuleSettings.getConfigSettings(PROPERTIES_SCRIPTS) != null && !ModuleSettings.getConfigSettings(PROPERTIES_SCRIPTS).isEmpty()) {
List<SCRIPT> scripts = new ArrayList<>();
for (Map.Entry<String, String> kvp : ModuleSettings.getConfigSettings(getModuleSettingsResource(PROPERTIES_SCRIPTS)).entrySet()) {
for (Map.Entry<String, String> kvp : ModuleSettings.getConfigSettings(PROPERTIES_SCRIPTS).entrySet()) {
if (kvp.getValue().equals("true")) { //NON-NLS
scripts.add(SCRIPT.valueOf(kvp.getKey()));
}
@ -229,8 +207,8 @@ public class KeywordSearchSettings {
* @return option string value, or empty string if the option is not set
*/
static String getStringExtractOption(String key) {
if (ModuleSettings.getConfigSetting(getModuleSettingsResource(PROPERTIES_OPTIONS), key) != null) {
return ModuleSettings.getConfigSetting(getModuleSettingsResource(PROPERTIES_OPTIONS), key);
if (ModuleSettings.getConfigSetting(PROPERTIES_OPTIONS, key) != null) {
return ModuleSettings.getConfigSetting(PROPERTIES_OPTIONS, key);
} else {
logger.log(Level.WARNING, "Could not read property for key {0}, returning backup value.", key); //NON-NLS
return stringExtractOptions.get(key);
@ -243,7 +221,7 @@ public class KeywordSearchSettings {
* @return Map<String,String> of extract options.
*/
static Map<String, String> getStringExtractOptions() {
Map<String, String> settings = ModuleSettings.getConfigSettings(getModuleSettingsResource(PROPERTIES_OPTIONS));
Map<String, String> settings = ModuleSettings.getConfigSettings(PROPERTIES_OPTIONS);
if (settings == null) {
Map<String, String> settingsv2 = new HashMap<>();
logger.log(Level.WARNING, "Could not read properties for {0}.properties, returning backup values", PROPERTIES_OPTIONS); //NON-NLS
@ -261,29 +239,29 @@ public class KeywordSearchSettings {
static void setDefaults() {
logger.log(Level.INFO, "Detecting default settings."); //NON-NLS
//setting default NSRL
if (!ModuleSettings.settingExists(getModuleSettingsResource(KeywordSearchSettings.PROPERTIES_NSRL), "SkipKnown")) { //NON-NLS
if (!ModuleSettings.settingExists(KeywordSearchSettings.PROPERTIES_NSRL, "SkipKnown")) { //NON-NLS
logger.log(Level.INFO, "No configuration for NSRL found, generating default..."); //NON-NLS
KeywordSearchSettings.setSkipKnown(true);
}
//setting default Update Frequency
if (!ModuleSettings.settingExists(getModuleSettingsResource(KeywordSearchSettings.PROPERTIES_OPTIONS), "UpdateFrequency")) { //NON-NLS
if (!ModuleSettings.settingExists(KeywordSearchSettings.PROPERTIES_OPTIONS, "UpdateFrequency")) { //NON-NLS
logger.log(Level.INFO, "No configuration for Update Frequency found, generating default..."); //NON-NLS
KeywordSearchSettings.setUpdateFrequency(UpdateFrequency.DEFAULT);
}
//setting default Extract UTF8
if (!ModuleSettings.settingExists(getModuleSettingsResource(KeywordSearchSettings.PROPERTIES_OPTIONS), StringsExtractOptions.EXTRACT_UTF8.toString())) {
if (!ModuleSettings.settingExists(KeywordSearchSettings.PROPERTIES_OPTIONS, StringsExtractOptions.EXTRACT_UTF8.toString())) {
logger.log(Level.INFO, "No configuration for UTF8 found, generating default..."); //NON-NLS
KeywordSearchSettings.setStringExtractOption(StringsExtractOptions.EXTRACT_UTF8.toString(), Boolean.TRUE.toString());
}
//setting default Extract UTF16
if (!ModuleSettings.settingExists(getModuleSettingsResource(KeywordSearchSettings.PROPERTIES_OPTIONS), StringsExtractOptions.EXTRACT_UTF16.toString())) {
if (!ModuleSettings.settingExists(KeywordSearchSettings.PROPERTIES_OPTIONS, StringsExtractOptions.EXTRACT_UTF16.toString())) {
logger.log(Level.INFO, "No configuration for UTF16 found, generating defaults..."); //NON-NLS
KeywordSearchSettings.setStringExtractOption(StringsExtractOptions.EXTRACT_UTF16.toString(), Boolean.TRUE.toString());
}
//setting default Latin-1 Script
if (!ModuleSettings.settingExists(getModuleSettingsResource(KeywordSearchSettings.PROPERTIES_SCRIPTS), SCRIPT.LATIN_1.name())) {
if (!ModuleSettings.settingExists(KeywordSearchSettings.PROPERTIES_SCRIPTS, SCRIPT.LATIN_1.name())) {
logger.log(Level.INFO, "No configuration for Scripts found, generating defaults..."); //NON-NLS
ModuleSettings.setConfigSetting(getModuleSettingsResource(KeywordSearchSettings.PROPERTIES_SCRIPTS), SCRIPT.LATIN_1.name(), Boolean.toString(true));
ModuleSettings.setConfigSetting(KeywordSearchSettings.PROPERTIES_SCRIPTS, SCRIPT.LATIN_1.name(), Boolean.toString(true));
}
}
}

View File

@ -329,28 +329,28 @@ public class Server {
private void initSettings() {
if (ModuleSettings.settingExists(KeywordSearchSettings.getModuleSettingsResource(PROPERTIES_FILE), PROPERTIES_CURRENT_SERVER_PORT)) {
if (ModuleSettings.settingExists(PROPERTIES_FILE, PROPERTIES_CURRENT_SERVER_PORT)) {
try {
localSolrServerPort = Integer.decode(ModuleSettings.getConfigSetting(KeywordSearchSettings.getModuleSettingsResource(PROPERTIES_FILE), PROPERTIES_CURRENT_SERVER_PORT));
localSolrServerPort = Integer.decode(ModuleSettings.getConfigSetting(PROPERTIES_FILE, PROPERTIES_CURRENT_SERVER_PORT));
} catch (NumberFormatException nfe) {
logger.log(Level.WARNING, "Could not decode indexing server port, value was not a valid port number, using the default. ", nfe); //NON-NLS
localSolrServerPort = DEFAULT_SOLR_SERVER_PORT;
}
} else {
localSolrServerPort = DEFAULT_SOLR_SERVER_PORT;
ModuleSettings.setConfigSetting(KeywordSearchSettings.getModuleSettingsResource(PROPERTIES_FILE), PROPERTIES_CURRENT_SERVER_PORT, String.valueOf(localSolrServerPort));
ModuleSettings.setConfigSetting(PROPERTIES_FILE, PROPERTIES_CURRENT_SERVER_PORT, String.valueOf(localSolrServerPort));
}
if (ModuleSettings.settingExists(KeywordSearchSettings.getModuleSettingsResource(PROPERTIES_FILE), PROPERTIES_CURRENT_STOP_PORT)) {
if (ModuleSettings.settingExists(PROPERTIES_FILE, PROPERTIES_CURRENT_STOP_PORT)) {
try {
localSolrStopPort = Integer.decode(ModuleSettings.getConfigSetting(KeywordSearchSettings.getModuleSettingsResource(PROPERTIES_FILE), PROPERTIES_CURRENT_STOP_PORT));
localSolrStopPort = Integer.decode(ModuleSettings.getConfigSetting(PROPERTIES_FILE, PROPERTIES_CURRENT_STOP_PORT));
} catch (NumberFormatException nfe) {
logger.log(Level.WARNING, "Could not decode indexing server stop port, value was not a valid port number, using default", nfe); //NON-NLS
localSolrStopPort = DEFAULT_SOLR_STOP_PORT;
}
} else {
localSolrStopPort = DEFAULT_SOLR_STOP_PORT;
ModuleSettings.setConfigSetting(KeywordSearchSettings.getModuleSettingsResource(PROPERTIES_FILE), PROPERTIES_CURRENT_STOP_PORT, String.valueOf(localSolrStopPort));
ModuleSettings.setConfigSetting(PROPERTIES_FILE, PROPERTIES_CURRENT_STOP_PORT, String.valueOf(localSolrStopPort));
}
}
@ -827,7 +827,7 @@ public class Server {
*/
void changeSolrServerPort(int port) {
localSolrServerPort = port;
ModuleSettings.setConfigSetting(KeywordSearchSettings.getModuleSettingsResource(PROPERTIES_FILE), PROPERTIES_CURRENT_SERVER_PORT, String.valueOf(port));
ModuleSettings.setConfigSetting(PROPERTIES_FILE, PROPERTIES_CURRENT_SERVER_PORT, String.valueOf(port));
}
/**
@ -837,7 +837,7 @@ public class Server {
*/
void changeSolrStopPort(int port) {
localSolrStopPort = port;
ModuleSettings.setConfigSetting(KeywordSearchSettings.getModuleSettingsResource(PROPERTIES_FILE), PROPERTIES_CURRENT_STOP_PORT, String.valueOf(port));
ModuleSettings.setConfigSetting(PROPERTIES_FILE, PROPERTIES_CURRENT_STOP_PORT, String.valueOf(port));
}
/**

View File

@ -18,7 +18,7 @@
*/
package org.sleuthkit.autopsy.keywordsearch;
import java.nio.file.Paths;
import java.io.File;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
@ -30,6 +30,7 @@ import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import org.sleuthkit.autopsy.coreutils.Logger;
import org.sleuthkit.autopsy.coreutils.PlatformUtil;
import org.sleuthkit.autopsy.coreutils.XMLUtil;
import org.sleuthkit.datamodel.BlackboardAttribute;
import org.w3c.dom.Document;
@ -44,7 +45,7 @@ final class XmlKeywordSearchList extends KeywordSearchList {
private static final Logger xmlListslogger = Logger.getLogger(XmlKeywordSearchList.class.getName());
private static final String CUR_LISTS_FILE_NAME = "keywords.xml"; //NON-NLS
private static final String CUR_LISTS_FILE = Paths.get(KeywordSearchSettings.getBaseSettingsPath(), CUR_LISTS_FILE_NAME).toString();
private static final String CUR_LISTS_FILE = PlatformUtil.getUserConfigDirectory() + File.separator + CUR_LISTS_FILE_NAME;
private static final String ROOT_EL = "keyword_lists"; //NON-NLS
private static final String LIST_EL = "keyword_list"; //NON-NLS
private static final String LIST_NAME_ATTR = "name"; //NON-NLS