mirror of
https://github.com/overcuriousity/autopsy-flatpak.git
synced 2025-07-12 16:06:15 +00:00
ingest message filtering tweaks
This commit is contained in:
parent
8d65dadf4e
commit
7a581bf487
@ -45,12 +45,15 @@ public class IngestMessage {
|
|||||||
private Date datePosted;
|
private Date datePosted;
|
||||||
private static SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
private static SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
||||||
|
|
||||||
private IngestMessage(long ID, MessageType messageType, IngestServiceAbstract source, String subject, String detailsHtml) {
|
private IngestMessage(long ID, MessageType messageType, IngestServiceAbstract source, String subject, String detailsHtml, String uniqueKey) {
|
||||||
this.ID = ID;
|
this.ID = ID;
|
||||||
this.source = source;
|
this.source = source;
|
||||||
this.messageType = messageType;
|
this.messageType = messageType;
|
||||||
this.subject = subject;
|
this.subject = subject;
|
||||||
this.detailsHtml = detailsHtml;
|
this.detailsHtml = detailsHtml;
|
||||||
|
if (uniqueKey == null)
|
||||||
|
this.uniqueKey = "";
|
||||||
|
else this.uniqueKey = uniqueKey;
|
||||||
datePosted = new Date();
|
datePosted = new Date();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -167,7 +170,7 @@ public class IngestMessage {
|
|||||||
if (messageType == null || source == null || subject == null) {
|
if (messageType == null || source == null || subject == null) {
|
||||||
throw new IllegalArgumentException("message type, source and subject cannot be null");
|
throw new IllegalArgumentException("message type, source and subject cannot be null");
|
||||||
}
|
}
|
||||||
return new IngestMessage(ID, messageType, source, subject, detailsHtml);
|
return new IngestMessage(ID, messageType, source, subject, detailsHtml, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -193,7 +196,7 @@ public class IngestMessage {
|
|||||||
if (source == null || subject == null) {
|
if (source == null || subject == null) {
|
||||||
throw new IllegalArgumentException("source and subject cannot be null");
|
throw new IllegalArgumentException("source and subject cannot be null");
|
||||||
}
|
}
|
||||||
return new IngestMessage(ID, MessageType.ERROR, source, subject, null);
|
return new IngestMessage(ID, MessageType.ERROR, source, subject, null, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -207,7 +210,7 @@ public class IngestMessage {
|
|||||||
if (source == null || subject == null) {
|
if (source == null || subject == null) {
|
||||||
throw new IllegalArgumentException("source and subject cannot be null");
|
throw new IllegalArgumentException("source and subject cannot be null");
|
||||||
}
|
}
|
||||||
return new IngestMessage(ID, MessageType.WARNING, source, subject, null);
|
return new IngestMessage(ID, MessageType.WARNING, source, subject, null, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -225,13 +228,12 @@ public class IngestMessage {
|
|||||||
throw new IllegalArgumentException("source, subject, details and data cannot be null");
|
throw new IllegalArgumentException("source, subject, details and data cannot be null");
|
||||||
}
|
}
|
||||||
|
|
||||||
IngestMessage im = new IngestMessage(ID, MessageType.DATA, source, subject, detailsHtml);
|
IngestMessage im = new IngestMessage(ID, MessageType.DATA, source, subject, detailsHtml, uniqueKey);
|
||||||
im.uniqueKey = uniqueKey;
|
|
||||||
im.data = data;
|
im.data = data;
|
||||||
return im;
|
return im;
|
||||||
}
|
}
|
||||||
|
|
||||||
static IngestMessage createManagerMessage(String subject) {
|
static IngestMessage createManagerMessage(String subject) {
|
||||||
return new IngestMessage(0, MessageType.INFO, null, subject, null);
|
return new IngestMessage(0, MessageType.INFO, null, subject, null, null);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -281,8 +281,8 @@ class IngestMessagePanel extends javax.swing.JPanel {
|
|||||||
//and add to existing group or create a new group
|
//and add to existing group or create a new group
|
||||||
IngestServiceAbstract service = m.getSource();
|
IngestServiceAbstract service = m.getSource();
|
||||||
IngestMessageGroup messageGroup = null;
|
IngestMessageGroup messageGroup = null;
|
||||||
if (service != null) {
|
if (service != null && m.getMessageType() == IngestMessage.MessageType.DATA) {
|
||||||
//not a manager message, then group
|
//not a manager message, a data message, then group
|
||||||
final Map<String, List<IngestMessageGroup>> groups = groupings.get(service);
|
final Map<String, List<IngestMessageGroup>> groups = groupings.get(service);
|
||||||
//groups for this uniqueness
|
//groups for this uniqueness
|
||||||
final String uniqueness = m.getUniqueKey();
|
final String uniqueness = m.getUniqueKey();
|
||||||
@ -315,9 +315,10 @@ class IngestMessagePanel extends javax.swing.JPanel {
|
|||||||
IngestMessageGroup first = uniqGroups.get(0);
|
IngestMessageGroup first = uniqGroups.get(0);
|
||||||
//one group with multiple messages
|
//one group with multiple messages
|
||||||
if (first.getCount() > 1) {
|
if (first.getCount() > 1) {
|
||||||
|
//had already been merged
|
||||||
first.add(m);
|
first.add(m);
|
||||||
messageGroup = first;
|
messageGroup = first;
|
||||||
//TODO move to bottom of table
|
//move to bottom of table
|
||||||
//remove from existing position
|
//remove from existing position
|
||||||
int toRemove = getTableEntryIndex(messageGroup);
|
int toRemove = getTableEntryIndex(messageGroup);
|
||||||
messageData.remove(toRemove);
|
messageData.remove(toRemove);
|
||||||
@ -325,12 +326,14 @@ class IngestMessagePanel extends javax.swing.JPanel {
|
|||||||
this.fireTableRowsDeleted(toRemove, toRemove); //TODO check
|
this.fireTableRowsDeleted(toRemove, toRemove); //TODO check
|
||||||
} else {
|
} else {
|
||||||
//one group with one message
|
//one group with one message
|
||||||
|
//create another group
|
||||||
messageGroup = new IngestMessageGroup(m);
|
messageGroup = new IngestMessageGroup(m);
|
||||||
uniqGroups.add(messageGroup);
|
uniqGroups.add(messageGroup);
|
||||||
|
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
//multiple groups with 1 msg each
|
//multiple groups with 1 msg each
|
||||||
|
//create another group, until need to merge
|
||||||
messageGroup = new IngestMessageGroup(m);
|
messageGroup = new IngestMessageGroup(m);
|
||||||
uniqGroups.add(messageGroup);
|
uniqGroups.add(messageGroup);
|
||||||
//add to bottom
|
//add to bottom
|
||||||
@ -338,7 +341,7 @@ class IngestMessagePanel extends javax.swing.JPanel {
|
|||||||
}
|
}
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
//manager message
|
//manager or non-data message
|
||||||
messageGroup = new IngestMessageGroup(m);
|
messageGroup = new IngestMessageGroup(m);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -457,7 +460,10 @@ class IngestMessagePanel extends javax.swing.JPanel {
|
|||||||
String getDetails() {
|
String getDetails() {
|
||||||
StringBuilder b = new StringBuilder();
|
StringBuilder b = new StringBuilder();
|
||||||
for (IngestMessage m : messages) {
|
for (IngestMessage m : messages) {
|
||||||
b.append(m.getDetails());
|
String details = m.getDetails();
|
||||||
|
if (details == null)
|
||||||
|
details = "";
|
||||||
|
b.append(details);
|
||||||
b.append("<hr />");
|
b.append("<hr />");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -18,8 +18,6 @@
|
|||||||
*/
|
*/
|
||||||
package org.sleuthkit.autopsy.keywordsearch;
|
package org.sleuthkit.autopsy.keywordsearch;
|
||||||
|
|
||||||
import java.io.File;
|
|
||||||
import java.net.URLEncoder;
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
@ -30,7 +28,6 @@ import java.util.logging.Logger;
|
|||||||
import javax.swing.SwingUtilities;
|
import javax.swing.SwingUtilities;
|
||||||
import javax.swing.SwingWorker;
|
import javax.swing.SwingWorker;
|
||||||
import org.apache.solr.client.solrj.SolrServerException;
|
import org.apache.solr.client.solrj.SolrServerException;
|
||||||
import org.apache.solr.client.solrj.response.TermsResponse.Term;
|
|
||||||
import org.netbeans.api.progress.ProgressHandle;
|
import org.netbeans.api.progress.ProgressHandle;
|
||||||
import org.netbeans.api.progress.ProgressHandleFactory;
|
import org.netbeans.api.progress.ProgressHandleFactory;
|
||||||
import org.openide.util.Cancellable;
|
import org.openide.util.Cancellable;
|
||||||
@ -46,7 +43,6 @@ import org.sleuthkit.autopsy.keywordsearch.Ingester.IngesterException;
|
|||||||
import org.sleuthkit.datamodel.BlackboardArtifact;
|
import org.sleuthkit.datamodel.BlackboardArtifact;
|
||||||
import org.sleuthkit.datamodel.BlackboardArtifact.ARTIFACT_TYPE;
|
import org.sleuthkit.datamodel.BlackboardArtifact.ARTIFACT_TYPE;
|
||||||
import org.sleuthkit.datamodel.BlackboardAttribute;
|
import org.sleuthkit.datamodel.BlackboardAttribute;
|
||||||
import org.sleuthkit.datamodel.BlackboardAttribute.ATTRIBUTE_TYPE;
|
|
||||||
import org.sleuthkit.datamodel.FsContent;
|
import org.sleuthkit.datamodel.FsContent;
|
||||||
import org.sleuthkit.datamodel.SleuthkitCase;
|
import org.sleuthkit.datamodel.SleuthkitCase;
|
||||||
import org.sleuthkit.datamodel.TskException;
|
import org.sleuthkit.datamodel.TskException;
|
||||||
@ -524,12 +520,16 @@ public final class KeywordSearchIngestService implements IngestServiceFsContent
|
|||||||
//final int hitFiles = newResults.size();
|
//final int hitFiles = newResults.size();
|
||||||
|
|
||||||
subjectSb.append("Keyword hit: ").append("<");
|
subjectSb.append("Keyword hit: ").append("<");
|
||||||
|
String uniqueKey = null;
|
||||||
BlackboardAttribute attr = res.getAttribute(BlackboardAttribute.ATTRIBUTE_TYPE.TSK_KEYWORD.getTypeID());
|
BlackboardAttribute attr = res.getAttribute(BlackboardAttribute.ATTRIBUTE_TYPE.TSK_KEYWORD.getTypeID());
|
||||||
if (attr != null) {
|
if (attr != null) {
|
||||||
subjectSb.append(attr.getValueString());
|
final String keyword = attr.getValueString();
|
||||||
|
subjectSb.append(keyword);
|
||||||
|
uniqueKey = keyword;
|
||||||
}
|
}
|
||||||
|
|
||||||
subjectSb.append(">");
|
subjectSb.append(">");
|
||||||
String uniqueKey = queryStr;
|
//String uniqueKey = queryStr;
|
||||||
|
|
||||||
//details
|
//details
|
||||||
//hit
|
//hit
|
||||||
@ -545,6 +545,7 @@ public final class KeywordSearchIngestService implements IngestServiceFsContent
|
|||||||
detailsSb.append("<br />");
|
detailsSb.append("<br />");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//file
|
//file
|
||||||
detailsSb.append("File: ");
|
detailsSb.append("File: ");
|
||||||
detailsSb.append(hitFile.getParentPath()).append(hitFile.getName());
|
detailsSb.append(hitFile.getParentPath()).append(hitFile.getName());
|
||||||
|
Loading…
x
Reference in New Issue
Block a user