addressed review comments

This commit is contained in:
Kelly Kelly 2021-02-23 11:33:41 -05:00
parent ee4c03f645
commit 9c940ad013

View File

@ -69,6 +69,7 @@ import java.util.HashSet;
import static java.util.Locale.US; import static java.util.Locale.US;
import java.util.Optional; import java.util.Optional;
import static java.util.TimeZone.getTimeZone; import static java.util.TimeZone.getTimeZone;
import java.util.stream.Collectors;
import org.openide.util.Lookup; import org.openide.util.Lookup;
import org.sleuthkit.autopsy.casemodule.Case; import org.sleuthkit.autopsy.casemodule.Case;
import org.sleuthkit.autopsy.casemodule.NoCurrentCaseException; import org.sleuthkit.autopsy.casemodule.NoCurrentCaseException;
@ -1146,7 +1147,7 @@ class ExtractRegistry extends Extract {
// New OsAccount Code // New OsAccount Code
OsAccountManager accountMgr = tskCase.getOsAccountManager(); OsAccountManager accountMgr = tskCase.getOsAccountManager();
HostManager hostMrg = tskCase.getHostManager(); HostManager hostMrg = tskCase.getHostManager();
Host host = hostMrg.getHost(tskCase.getDataSource(regAbstractFile.getDataSourceObjectId())); Host host = hostMrg.getHost((DataSource)dataSource);
Set<OsAccount> existingAccounts = accountMgr.getAccounts(host); Set<OsAccount> existingAccounts = accountMgr.getAccounts(host);
for(OsAccount osAccount: existingAccounts) { for(OsAccount osAccount: existingAccounts) {
@ -2367,58 +2368,63 @@ class ExtractRegistry extends Extract {
} }
} }
String settingString = ""; String settingString = getSettingsFromMap(ACCOUNT_SETTINGS_FLAGS, userInfo);
for (String setting : PASSWORD_SETTINGS_FLAGS) {
if (userInfo.containsKey(setting)) {
settingString += setting + ", ";
}
}
if (!settingString.isEmpty()) { if (!settingString.isEmpty()) {
settingString = settingString.substring(0, settingString.length() - 2); settingString = settingString.substring(0, settingString.length() - 2);
attributeSet.add(createOsAccountAttribute(ATTRIBUTE_TYPE.TSK_PASSWORD_SETTINGS, attributeSet.add(createOsAccountAttribute(ATTRIBUTE_TYPE.TSK_PASSWORD_SETTINGS,
settingString, osAccount, host, regFile)); settingString, osAccount, host, regFile));
} }
settingString = ""; settingString = getSettingsFromMap(ACCOUNT_SETTINGS_FLAGS, userInfo);
for (String setting : ACCOUNT_SETTINGS_FLAGS) {
if (userInfo.containsKey(setting)) {
settingString += setting + ", ";
}
}
if (!settingString.isEmpty()) { if (!settingString.isEmpty()) {
settingString = settingString.substring(0, settingString.length() - 2); settingString = settingString.substring(0, settingString.length() - 2);
attributeSet.add(createOsAccountAttribute(ATTRIBUTE_TYPE.TSK_ACCOUNT_SETTINGS, attributeSet.add(createOsAccountAttribute(ATTRIBUTE_TYPE.TSK_ACCOUNT_SETTINGS,
settingString, osAccount, host, regFile)); settingString, osAccount, host, regFile));
} }
settingString = ""; settingString = getSettingsFromMap(ACCOUNT_TYPE_FLAGS, userInfo);
for (String setting : ACCOUNT_TYPE_FLAGS) {
if (userInfo.containsKey(setting)) {
settingString += setting + ", ";
}
}
if (!settingString.isEmpty()) { if (!settingString.isEmpty()) {
settingString = settingString.substring(0, settingString.length() - 2);
attributeSet.add(createOsAccountAttribute(ATTRIBUTE_TYPE.TSK_FLAG, attributeSet.add(createOsAccountAttribute(ATTRIBUTE_TYPE.TSK_FLAG,
settingString, osAccount, host, regFile)); settingString, osAccount, host, regFile));
} }
if (groupList != null && groupList.isEmpty()) { if (groupList != null && groupList.isEmpty()) {
String groups = ""; String groups = groupList.stream()
for (String group : groupList) { .map(String::valueOf)
groups += group + ", "; .collect(Collectors.joining(", "));
}
attributeSet.add(createOsAccountAttribute(ATTRIBUTE_TYPE.TSK_GROUPS, attributeSet.add(createOsAccountAttribute(ATTRIBUTE_TYPE.TSK_GROUPS,
groups.substring(0, groups.length() - 2), osAccount, host, regFile)); groups, osAccount, host, regFile));
} }
osAccount.addAttributes(attributeSet); osAccount.addAttributes(attributeSet);
tskCase.getOsAccountManager().updateAccount(osAccount); tskCase.getOsAccountManager().updateAccount(osAccount);
} }
/**
* Create comma separated list from the set values for the given keys.
*
* @param keys List of map keys.
* @param map Data map.
*
* @return Comma separated String of values.
*/
private String getSettingsFromMap(String[] keys, Map<String, String> map) {
List<String> settingsList = new ArrayList<>();
for (String setting : keys) {
if (map.containsKey(setting)) {
settingsList.add(setting);
}
}
if (!settingsList.isEmpty()) {
return settingsList.stream()
.map(String::valueOf)
.collect(Collectors.joining(", "));
}
return "";
}
/** /**
* Helper for constructing a new OsAccountAttribute * Helper for constructing a new OsAccountAttribute