mirror of
https://github.com/overcuriousity/autopsy-flatpak.git
synced 2025-07-12 16:06:15 +00:00
Implemented and tested new Portable case functionality
This commit is contained in:
parent
421705bbfe
commit
9a7d4cda27
@ -129,7 +129,7 @@ public final class CaseUcoReportGenerator {
|
|||||||
* @throws TskCoreException
|
* @throws TskCoreException
|
||||||
*/
|
*/
|
||||||
public void addFile(AbstractFile file, Content parentDataSource) throws IOException, TskCoreException {
|
public void addFile(AbstractFile file, Content parentDataSource) throws IOException, TskCoreException {
|
||||||
addFile(file, parentDataSource, "");
|
addFile(file, parentDataSource, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -141,11 +141,11 @@ public final class CaseUcoReportGenerator {
|
|||||||
* addDataSource) prior to this call. Otherwise, the report may be invalid.
|
* addDataSource) prior to this call. Otherwise, the report may be invalid.
|
||||||
* @param localPath The location of the file on secondary storage, somewhere
|
* @param localPath The location of the file on secondary storage, somewhere
|
||||||
* other than the case. Example: local disk. This value will be ignored if
|
* other than the case. Example: local disk. This value will be ignored if
|
||||||
* it is null or empty.
|
* it is null.
|
||||||
* @throws IOException
|
* @throws IOException
|
||||||
* @throws TskCoreException
|
* @throws TskCoreException
|
||||||
*/
|
*/
|
||||||
public void addFile(AbstractFile file, Content parentDataSource, String localPath) throws IOException, TskCoreException {
|
public void addFile(AbstractFile file, Content parentDataSource, Path localPath) throws IOException, TskCoreException {
|
||||||
String fileTraceId = getFileTraceId(file);
|
String fileTraceId = getFileTraceId(file);
|
||||||
|
|
||||||
//Create the Trace CASE node, which will contain attributes about some evidence.
|
//Create the Trace CASE node, which will contain attributes about some evidence.
|
||||||
@ -165,11 +165,11 @@ public final class CaseUcoReportGenerator {
|
|||||||
CASEPropertyBundle contentDataPropertyBundle = createContentDataBundle(file);
|
CASEPropertyBundle contentDataPropertyBundle = createContentDataBundle(file);
|
||||||
fileTrace.addBundle(contentDataPropertyBundle);
|
fileTrace.addBundle(contentDataPropertyBundle);
|
||||||
|
|
||||||
if(!Strings.isNullOrEmpty(localPath)) {
|
if(localPath != null) {
|
||||||
String urlTraceId = getURLTraceId(file);
|
String urlTraceId = getURLTraceId(file);
|
||||||
CASENode urlTrace = new CASENode(urlTraceId, "Trace");
|
CASENode urlTrace = new CASENode(urlTraceId, "Trace");
|
||||||
CASEPropertyBundle urlPropertyBundle = new CASEPropertyBundle("URL");
|
CASEPropertyBundle urlPropertyBundle = new CASEPropertyBundle("URL");
|
||||||
urlPropertyBundle.addProperty("fullValue", localPath);
|
urlPropertyBundle.addProperty("fullValue", localPath.toString());
|
||||||
urlTrace.addBundle(urlPropertyBundle);
|
urlTrace.addBundle(urlPropertyBundle);
|
||||||
|
|
||||||
contentDataPropertyBundle.addProperty("dataPayloadReferenceUrl", urlTraceId);
|
contentDataPropertyBundle.addProperty("dataPayloadReferenceUrl", urlTraceId);
|
||||||
@ -399,15 +399,28 @@ public final class CaseUcoReportGenerator {
|
|||||||
*/
|
*/
|
||||||
private final class CASENode {
|
private final class CASENode {
|
||||||
|
|
||||||
|
private final String id;
|
||||||
|
private final String type;
|
||||||
|
|
||||||
//Dynamic properties added to this CASENode.
|
//Dynamic properties added to this CASENode.
|
||||||
private final LinkedHashMap<String, Object> properties;
|
private final Map<String, Object> properties;
|
||||||
private final List<CASEPropertyBundle> propertyBundle;
|
private final List<CASEPropertyBundle> propertyBundle;
|
||||||
|
|
||||||
public CASENode(String id, String type) {
|
public CASENode(String id, String type) {
|
||||||
propertyBundle = new ArrayList<>();
|
this.id = id;
|
||||||
|
this.type = type;
|
||||||
properties = new LinkedHashMap<>();
|
properties = new LinkedHashMap<>();
|
||||||
addProperty("@id", id);
|
propertyBundle = new ArrayList<>();
|
||||||
addProperty("@type", type);
|
}
|
||||||
|
|
||||||
|
@JsonProperty("@id")
|
||||||
|
public String getId() {
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
|
||||||
|
@JsonProperty("@type")
|
||||||
|
public String getType() {
|
||||||
|
return type;
|
||||||
}
|
}
|
||||||
|
|
||||||
@JsonAnyGetter
|
@JsonAnyGetter
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
* Autopsy Forensic Browser
|
* Autopsy Forensic Browser
|
||||||
*
|
*
|
||||||
* Copyright 2019 Basis Technology Corp.
|
* Copyright 2019-2020 Basis Technology Corp.
|
||||||
* Contact: carrier <at> sleuthkit <dot> org
|
* Contact: carrier <at> sleuthkit <dot> org
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
@ -570,7 +570,9 @@ public class PortableCaseReportModule implements ReportModule {
|
|||||||
if(!dataSourceHasBeenIncluded) {
|
if(!dataSourceHasBeenIncluded) {
|
||||||
reportGenerator.addDataSource(dataSource, currentCase);
|
reportGenerator.addDataSource(dataSource, currentCase);
|
||||||
}
|
}
|
||||||
reportGenerator.addFile(absFile, dataSource);
|
String subFolder = getExportSubfolder(absFile);
|
||||||
|
String fileName = absFile.getId() + "-" + FileUtil.escapeFileName(absFile.getName());
|
||||||
|
reportGenerator.addFile(absFile, dataSource, Paths.get(FILE_FOLDER_NAME, subFolder, fileName));
|
||||||
Files.createFile(filePath);
|
Files.createFile(filePath);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user