mirror of
https://github.com/overcuriousity/autopsy-flatpak.git
synced 2025-07-17 10:17:41 +00:00
remove more unneeded ContentStreams and cleanup logging
This commit is contained in:
parent
0303c96d41
commit
b904c37dd2
@ -18,19 +18,15 @@
|
|||||||
*/
|
*/
|
||||||
package org.sleuthkit.autopsy.keywordsearch;
|
package org.sleuthkit.autopsy.keywordsearch;
|
||||||
|
|
||||||
import java.io.ByteArrayInputStream;
|
|
||||||
import java.io.IOException;
|
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
import java.io.InputStreamReader;
|
import java.io.InputStreamReader;
|
||||||
import java.io.Reader;
|
import java.io.Reader;
|
||||||
|
import java.util.logging.Level;
|
||||||
import org.apache.commons.io.IOUtils;
|
import org.apache.commons.io.IOUtils;
|
||||||
import org.apache.solr.common.util.ContentStream;
|
|
||||||
import org.openide.util.Exceptions;
|
import org.openide.util.Exceptions;
|
||||||
import org.openide.util.NbBundle;
|
|
||||||
import org.sleuthkit.autopsy.casemodule.Case;
|
import org.sleuthkit.autopsy.casemodule.Case;
|
||||||
import org.sleuthkit.autopsy.coreutils.Logger;
|
import org.sleuthkit.autopsy.coreutils.Logger;
|
||||||
import org.sleuthkit.autopsy.datamodel.ContentUtils;
|
import org.sleuthkit.autopsy.datamodel.ContentUtils;
|
||||||
import static org.sleuthkit.autopsy.keywordsearch.Bundle.ByteArtifactStream_getSrcInfo_text;
|
|
||||||
import org.sleuthkit.datamodel.AbstractFile;
|
import org.sleuthkit.datamodel.AbstractFile;
|
||||||
import org.sleuthkit.datamodel.BlackboardArtifact;
|
import org.sleuthkit.datamodel.BlackboardArtifact;
|
||||||
import org.sleuthkit.datamodel.BlackboardAttribute;
|
import org.sleuthkit.datamodel.BlackboardAttribute;
|
||||||
@ -39,6 +35,7 @@ import org.sleuthkit.datamodel.SleuthkitCase;
|
|||||||
import org.sleuthkit.datamodel.TskCoreException;
|
import org.sleuthkit.datamodel.TskCoreException;
|
||||||
|
|
||||||
public class ArtifactExtractor extends TextExtractor<Void, BlackboardArtifact> {
|
public class ArtifactExtractor extends TextExtractor<Void, BlackboardArtifact> {
|
||||||
|
static final private Logger logger = Logger.getLogger(ArtifactExtractor.class.getName());
|
||||||
|
|
||||||
static Content getDataSource(BlackboardArtifact artifact) throws TskCoreException {
|
static Content getDataSource(BlackboardArtifact artifact) throws TskCoreException {
|
||||||
Content dataSource;
|
Content dataSource;
|
||||||
@ -76,9 +73,8 @@ public class ArtifactExtractor extends TextExtractor<Void, BlackboardArtifact> {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
void logWarning(String msg, Exception ex) {
|
void logWarning(String msg, Exception ex) {
|
||||||
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
|
logger.log(Level.WARNING, msg, ex); //NON-NLS }
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
Void newAppendixProvider() {
|
Void newAppendixProvider() {
|
||||||
return null;
|
return null;
|
||||||
@ -122,7 +118,6 @@ public class ArtifactExtractor extends TextExtractor<Void, BlackboardArtifact> {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
return IOUtils.toInputStream(artifactContents);
|
return IOUtils.toInputStream(artifactContents);
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -137,75 +132,8 @@ public class ArtifactExtractor extends TextExtractor<Void, BlackboardArtifact> {
|
|||||||
return source.getArtifactID();
|
return source.getArtifactID();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
String getName(BlackboardArtifact source) {
|
String getName(BlackboardArtifact source) {
|
||||||
return source.getDisplayName();
|
return source.getDisplayName() + "_" + source.getArtifactID();
|
||||||
}
|
|
||||||
|
|
||||||
static private class ByteArtifactStream implements ContentStream {
|
|
||||||
|
|
||||||
//input
|
|
||||||
private final byte[] content; //extracted subcontent
|
|
||||||
private long contentSize;
|
|
||||||
private final BlackboardArtifact aContent; //origin
|
|
||||||
|
|
||||||
private final InputStream stream;
|
|
||||||
|
|
||||||
private static final Logger logger = Logger.getLogger(ByteArtifactStream.class.getName());
|
|
||||||
|
|
||||||
public ByteArtifactStream(byte[] content, long contentSize, BlackboardArtifact aContent) {
|
|
||||||
this.content = content;
|
|
||||||
this.aContent = aContent;
|
|
||||||
stream = new ByteArrayInputStream(content, 0, (int) contentSize);
|
|
||||||
}
|
|
||||||
|
|
||||||
public byte[] getByteContent() {
|
|
||||||
return content;
|
|
||||||
}
|
|
||||||
|
|
||||||
public BlackboardArtifact getSourceContent() {
|
|
||||||
return aContent;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String getContentType() {
|
|
||||||
return "text/plain;charset=" + Server.DEFAULT_INDEXED_TEXT_CHARSET.name(); //NON-NLS
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String getName() {
|
|
||||||
return aContent.getDisplayName();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Reader getReader() throws IOException {
|
|
||||||
return new InputStreamReader(stream);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Long getSize() {
|
|
||||||
return contentSize;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
@NbBundle.Messages("ByteArtifactStream.getSrcInfo.text=Artifact:{0}")
|
|
||||||
public String getSourceInfo() {
|
|
||||||
return ByteArtifactStream_getSrcInfo_text(aContent.getArtifactID());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public InputStream getStream() throws IOException {
|
|
||||||
return stream;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void finalize() throws Throwable {
|
|
||||||
super.finalize();
|
|
||||||
|
|
||||||
stream.close();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -18,17 +18,8 @@
|
|||||||
*/
|
*/
|
||||||
package org.sleuthkit.autopsy.keywordsearch;
|
package org.sleuthkit.autopsy.keywordsearch;
|
||||||
|
|
||||||
import java.io.ByteArrayInputStream;
|
|
||||||
import java.io.IOException;
|
|
||||||
import java.io.InputStream;
|
|
||||||
import java.io.InputStreamReader;
|
|
||||||
import java.io.Reader;
|
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import org.apache.solr.common.util.ContentStream;
|
|
||||||
import org.openide.util.NbBundle;
|
|
||||||
import org.sleuthkit.autopsy.coreutils.Logger;
|
|
||||||
import org.sleuthkit.datamodel.AbstractContent;
|
|
||||||
import org.sleuthkit.datamodel.AbstractFile;
|
import org.sleuthkit.datamodel.AbstractFile;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -120,68 +111,4 @@ abstract class FileTextExtractor<AppendixProvider> extends TextExtractor<Appendi
|
|||||||
String getName(AbstractFile source) {
|
String getName(AbstractFile source) {
|
||||||
return source.getName();
|
return source.getName();
|
||||||
}
|
}
|
||||||
|
|
||||||
private static class ByteContentStream implements ContentStream {
|
|
||||||
|
|
||||||
//input
|
|
||||||
private final byte[] content; //extracted subcontent
|
|
||||||
private long contentSize;
|
|
||||||
private final AbstractContent aContent; //origin
|
|
||||||
|
|
||||||
private final InputStream stream;
|
|
||||||
|
|
||||||
private static final Logger logger = Logger.getLogger(ByteContentStream.class.getName());
|
|
||||||
|
|
||||||
public ByteContentStream(byte[] content, long contentSize, AbstractContent aContent) {
|
|
||||||
this.content = content;
|
|
||||||
this.aContent = aContent;
|
|
||||||
stream = new ByteArrayInputStream(content, 0, (int) contentSize);
|
|
||||||
}
|
|
||||||
|
|
||||||
public byte[] getByteContent() {
|
|
||||||
return content;
|
|
||||||
}
|
|
||||||
|
|
||||||
public AbstractContent getSourceContent() {
|
|
||||||
return aContent;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String getContentType() {
|
|
||||||
return "text/plain;charset=" + Server.DEFAULT_INDEXED_TEXT_CHARSET.name(); //NON-NLS
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String getName() {
|
|
||||||
return aContent.getName();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Reader getReader() throws IOException {
|
|
||||||
return new InputStreamReader(stream);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Long getSize() {
|
|
||||||
return contentSize;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String getSourceInfo() {
|
|
||||||
return NbBundle.getMessage(this.getClass(), "ByteContentStream.getSrcInfo.text", aContent.getId());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public InputStream getStream() throws IOException {
|
|
||||||
return stream;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void finalize() throws Throwable {
|
|
||||||
super.finalize();
|
|
||||||
|
|
||||||
stream.close();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@ -24,13 +24,11 @@ import java.io.Reader;
|
|||||||
import java.io.StringReader;
|
import java.io.StringReader;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.logging.Level;
|
|
||||||
import net.htmlparser.jericho.Attributes;
|
import net.htmlparser.jericho.Attributes;
|
||||||
import net.htmlparser.jericho.Renderer;
|
import net.htmlparser.jericho.Renderer;
|
||||||
import net.htmlparser.jericho.Source;
|
import net.htmlparser.jericho.Source;
|
||||||
import net.htmlparser.jericho.StartTag;
|
import net.htmlparser.jericho.StartTag;
|
||||||
import net.htmlparser.jericho.StartTagType;
|
import net.htmlparser.jericho.StartTagType;
|
||||||
import org.sleuthkit.autopsy.coreutils.Logger;
|
|
||||||
import org.sleuthkit.datamodel.AbstractFile;
|
import org.sleuthkit.datamodel.AbstractFile;
|
||||||
import org.sleuthkit.datamodel.ReadContentInputStream;
|
import org.sleuthkit.datamodel.ReadContentInputStream;
|
||||||
|
|
||||||
@ -41,8 +39,6 @@ import org.sleuthkit.datamodel.ReadContentInputStream;
|
|||||||
*/
|
*/
|
||||||
class HtmlTextExtractor extends FileTextExtractor<Void> {
|
class HtmlTextExtractor extends FileTextExtractor<Void> {
|
||||||
|
|
||||||
private static final Logger logger = Logger.getLogger(HtmlTextExtractor.class.getName());
|
|
||||||
|
|
||||||
static final int MAX_EXTR_TEXT_CHARS = 512 * 1024;
|
static final int MAX_EXTR_TEXT_CHARS = 512 * 1024;
|
||||||
private static final int MAX_SIZE = 50000000;
|
private static final int MAX_SIZE = 50000000;
|
||||||
|
|
||||||
@ -58,10 +54,6 @@ class HtmlTextExtractor extends FileTextExtractor<Void> {
|
|||||||
HtmlTextExtractor() {
|
HtmlTextExtractor() {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
void logWarning(final String msg, Exception ex) {
|
|
||||||
logger.log(Level.WARNING, msg, ex); //NON-NLS
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
boolean isContentTypeSpecific() {
|
boolean isContentTypeSpecific() {
|
||||||
|
@ -25,7 +25,6 @@ import java.util.ArrayList;
|
|||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.logging.Level;
|
|
||||||
import org.sleuthkit.autopsy.coreutils.Logger;
|
import org.sleuthkit.autopsy.coreutils.Logger;
|
||||||
import org.sleuthkit.autopsy.coreutils.StringExtract;
|
import org.sleuthkit.autopsy.coreutils.StringExtract;
|
||||||
import org.sleuthkit.autopsy.coreutils.StringExtract.StringExtractUnicodeTable.SCRIPT;
|
import org.sleuthkit.autopsy.coreutils.StringExtract.StringExtractUnicodeTable.SCRIPT;
|
||||||
@ -40,7 +39,6 @@ import org.sleuthkit.datamodel.TskException;
|
|||||||
*/
|
*/
|
||||||
class StringsTextExtractor extends FileTextExtractor<Void> {
|
class StringsTextExtractor extends FileTextExtractor<Void> {
|
||||||
|
|
||||||
private static final Logger logger = Logger.getLogger(StringsTextExtractor.class.getName());
|
|
||||||
private static final long MAX_STRING_CHUNK_SIZE = 1 * 1024 * 1024L;
|
private static final long MAX_STRING_CHUNK_SIZE = 1 * 1024 * 1024L;
|
||||||
private final List<SCRIPT> extractScripts = new ArrayList<>();
|
private final List<SCRIPT> extractScripts = new ArrayList<>();
|
||||||
private Map<String, String> extractOptions = new HashMap<>();
|
private Map<String, String> extractOptions = new HashMap<>();
|
||||||
@ -141,10 +139,6 @@ class StringsTextExtractor extends FileTextExtractor<Void> {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
void logWarning(String msg, Exception ex) {
|
|
||||||
logger.log(Level.WARNING, msg, ex); //NON-NLS
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
Void newAppendixProvider() {
|
Void newAppendixProvider() {
|
||||||
|
@ -20,13 +20,18 @@ package org.sleuthkit.autopsy.keywordsearch;
|
|||||||
|
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
import java.io.Reader;
|
import java.io.Reader;
|
||||||
|
import java.util.logging.Level;
|
||||||
|
import org.sleuthkit.autopsy.coreutils.Logger;
|
||||||
import org.sleuthkit.datamodel.SleuthkitVisitableItem;
|
import org.sleuthkit.datamodel.SleuthkitVisitableItem;
|
||||||
|
|
||||||
abstract class TextExtractor<AppendixProvider, TextSource extends SleuthkitVisitableItem> {
|
abstract class TextExtractor<AppendixProvider, TextSource extends SleuthkitVisitableItem> {
|
||||||
|
|
||||||
|
static final private Logger logger = Logger.getLogger(TextExtractor.class.getName());
|
||||||
abstract boolean noExtractionOptionsAreEnabled();
|
abstract boolean noExtractionOptionsAreEnabled();
|
||||||
|
|
||||||
abstract void logWarning(final String msg, Exception ex);
|
void logWarning(String msg, Exception ex) {
|
||||||
|
logger.log(Level.WARNING, msg, ex); //NON-NLS }
|
||||||
|
}
|
||||||
|
|
||||||
void appendDataToFinalChunk(StringBuilder sb, AppendixProvider dataProvider) {
|
void appendDataToFinalChunk(StringBuilder sb, AppendixProvider dataProvider) {
|
||||||
//no-op
|
//no-op
|
||||||
|
@ -34,7 +34,6 @@ import org.apache.tika.Tika;
|
|||||||
import org.apache.tika.metadata.Metadata;
|
import org.apache.tika.metadata.Metadata;
|
||||||
import org.apache.tika.parser.ParseContext;
|
import org.apache.tika.parser.ParseContext;
|
||||||
import org.openide.util.NbBundle;
|
import org.openide.util.NbBundle;
|
||||||
import org.sleuthkit.autopsy.coreutils.Logger;
|
|
||||||
import org.sleuthkit.autopsy.keywordsearch.Ingester.IngesterException;
|
import org.sleuthkit.autopsy.keywordsearch.Ingester.IngesterException;
|
||||||
import org.sleuthkit.datamodel.AbstractFile;
|
import org.sleuthkit.datamodel.AbstractFile;
|
||||||
import org.sleuthkit.datamodel.ReadContentInputStream;
|
import org.sleuthkit.datamodel.ReadContentInputStream;
|
||||||
@ -51,9 +50,7 @@ import org.sleuthkit.datamodel.ReadContentInputStream;
|
|||||||
*/
|
*/
|
||||||
class TikaTextExtractor extends FileTextExtractor<Metadata> {
|
class TikaTextExtractor extends FileTextExtractor<Metadata> {
|
||||||
|
|
||||||
private static final Logger logger = Logger.getLogger(TikaTextExtractor.class.getName());
|
|
||||||
private static final int MAX_EXTR_TEXT_CHARS = 512 * 1024;
|
private static final int MAX_EXTR_TEXT_CHARS = 512 * 1024;
|
||||||
|
|
||||||
private final ExecutorService tikaParseExecutor = Executors.newSingleThreadExecutor();
|
private final ExecutorService tikaParseExecutor = Executors.newSingleThreadExecutor();
|
||||||
|
|
||||||
private static final List<String> TIKA_SUPPORTED_TYPES
|
private static final List<String> TIKA_SUPPORTED_TYPES
|
||||||
@ -65,7 +62,7 @@ class TikaTextExtractor extends FileTextExtractor<Metadata> {
|
|||||||
@Override
|
@Override
|
||||||
void logWarning(final String msg, Exception ex) {
|
void logWarning(final String msg, Exception ex) {
|
||||||
KeywordSearch.getTikaLogger().log(Level.WARNING, msg, ex);
|
KeywordSearch.getTikaLogger().log(Level.WARNING, msg, ex);
|
||||||
logger.log(Level.WARNING, msg, ex);
|
super.logWarning(msg, ex);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
Loading…
x
Reference in New Issue
Block a user