updates for consistency

This commit is contained in:
Greg DiCristofaro 2020-02-27 16:05:10 -05:00
parent 7dba95ed2f
commit 097aa7075a
4 changed files with 83 additions and 15 deletions

View File

@ -22,6 +22,9 @@ package org.sleuthkit.autopsy.centralrepository.datamodel;
* common interface for settings pertaining to the database in central repository
*/
public interface CentralRepoDbConnectivityManager {
void loadSettings();
void saveSettings();
boolean createDatabase();

View File

@ -21,8 +21,8 @@ import org.sleuthkit.datamodel.CaseDbConnectionInfo;
*
* @author gregd
*/
public class CentralRepoPostgresSettingsManager {
private final static Logger LOGGER = Logger.getLogger(CentralRepoPostgresSettingsManager.class.getName());
public class CentralRepoPostgresSettingsUtil {
private final static Logger LOGGER = Logger.getLogger(CentralRepoPostgresSettingsUtil.class.getName());
private final static String DEFAULT_HOST = ""; // NON-NLS
private final static int DEFAULT_PORT = 5432;
@ -102,7 +102,7 @@ public class CentralRepoPostgresSettingsManager {
}
public static PostgresConnectionSettings loadSettings() {
public static PostgresConnectionSettings loadCustomSettings() {
PostgresConnectionSettings settings = new PostgresConnectionSettings();
Map<String, String> keyVals = ModuleSettings.getConfigSettings(MODULE_KEY);
@ -129,7 +129,7 @@ public class CentralRepoPostgresSettingsManager {
return settings;
}
public static void saveSettings(PostgresConnectionSettings settings) {
public static void saveCustomSettings(PostgresConnectionSettings settings) {
Map<String, String> map = new HashMap<String, String>();
map.put(HOST_KEY, settings.getHost());
map.put(PORT_KEY, Integer.toString(settings.getPort()));
@ -145,9 +145,13 @@ public class CentralRepoPostgresSettingsManager {
ModuleSettings.setConfigSettings(MODULE_KEY, map);
}
public static boolean isChanged(PostgresConnectionSettings settings) {
PostgresConnectionSettings saved = loadSettings();
/**
* checks if saved settings differ from the in-memory object provided in the 'settings' parameter
* @param settings the in-memory object
* @return whether or not settings parameter differs from saved custom settings
*/
public static boolean areCustomSettingsChanged(PostgresConnectionSettings settings) {
PostgresConnectionSettings saved = loadCustomSettings();
return saved.equals(settings);
}
}

View File

@ -26,11 +26,7 @@ import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;
import java.util.logging.Level;
import java.util.regex.Pattern;
import org.sleuthkit.autopsy.coreutils.Logger;
import org.sleuthkit.autopsy.coreutils.ModuleSettings;
import org.sleuthkit.autopsy.coreutils.TextConverter;
import org.sleuthkit.autopsy.coreutils.TextConverterException;
/**
* Settings for the Postgres implementation of the Central Repository database
@ -46,12 +42,34 @@ public final class PostgresCentralRepoSettings implements CentralRepoDbConnectiv
private final static String JDBC_DRIVER = "org.postgresql.Driver"; // NON-NLS
private final PostgresConnectionSettings connSettings;
private final PostgresSettingsLoader loader;
private PostgresConnectionSettings connSettings;
public PostgresCentralRepoSettings(PostgresConnectionSettings connSettings) {
this.connSettings = connSettings;
public PostgresCentralRepoSettings(PostgresSettingsLoader loader) {
this.loader = loader;
loadSettings();
}
/**
* default constructor that loads custom postgres settings from
*/
public PostgresCentralRepoSettings() {
this(PostgresSettingsLoader.CUSTOM_LOADER);
}
@Override
public void loadSettings() {
this.connSettings = loader.loadSettings();
}
@Override
public void saveSettings() {
loader.saveSettings(connSettings);
}
@Override
public String toString() {
return String.format("PostgresCentralRepoSettings: [db type: postgres, host: %s:%d, db name: %s, username: %s]",

View File

@ -0,0 +1,43 @@
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package org.sleuthkit.autopsy.centralrepository.datamodel;
/**
*
* @author gregd
*/
public interface PostgresSettingsLoader {
PostgresConnectionSettings loadSettings();
void saveSettings(PostgresConnectionSettings settings);
public static PostgresSettingsLoader CUSTOM_LOADER = new Custom();
public static PostgresSettingsLoader MULTIUSER_LOADER = new MultiUser();
static class Custom implements PostgresSettingsLoader {
@Override
public PostgresConnectionSettings loadSettings() {
return CentralRepoPostgresSettingsUtil.loadCustomSettings();
}
@Override
public void saveSettings(PostgresConnectionSettings settings) {
CentralRepoPostgresSettingsUtil.saveCustomSettings(settings);
}
}
static class MultiUser implements PostgresSettingsLoader {
@Override
public PostgresConnectionSettings loadSettings() {
return CentralRepoPostgresSettingsUtil.loadMultiUserSettings();
}
@Override
public void saveSettings(PostgresConnectionSettings settings) {}
}
}