Merge branch 'develop' of https://github.com/sleuthkit/autopsy into 2512-ProfilePanelTooTall

This commit is contained in:
William Schaefer 2017-04-10 17:29:53 -04:00
commit f94107e3ab
952 changed files with 4610 additions and 35532 deletions

17
.gitignore vendored
View File

@ -3,8 +3,7 @@
/*/build/ /*/build/
*/nbproject/private/* */nbproject/private/*
/nbproject/private/* /nbproject/private/*
/Core/release/modules/lib/ /Core/release/
/Core/release/modules/ext/
/Core/src/org/sleuthkit/autopsy/coreutils/Version.properties /Core/src/org/sleuthkit/autopsy/coreutils/Version.properties
/Core/build/ /Core/build/
/Core/dist/ /Core/dist/
@ -18,11 +17,7 @@
/CoreLibs/nbproject/* /CoreLibs/nbproject/*
!/CoreLibs/nbproject/project.xml !/CoreLibs/nbproject/project.xml
!/CoreLibs/nbproject/project.properties !/CoreLibs/nbproject/project.properties
/KeywordSearch/release/modules/ext/ /KeywordSearch/release/
/KeywordSearch/release/solr/lib/
/KeywordSearch/release/solr/solr/lib/
/KeywordSearch/release/solr/start.jar
/KeywordSearch/release/solr/webapps/solr.war
/KeywordSearch/build/ /KeywordSearch/build/
/KeywordSearch/dist/ /KeywordSearch/dist/
/KeywordSearch/nbproject/* /KeywordSearch/nbproject/*
@ -72,10 +67,14 @@ genfiles.properties
hs_err_pid*.log hs_err_pid*.log
Core/src/org/sleuthkit/autopsy/casemodule/docs/QuickStart.html Core/src/org/sleuthkit/autopsy/casemodule/docs/QuickStart.html
Core/src/org/sleuthkit/autopsy/casemodule/docs/screenshot.png Core/src/org/sleuthkit/autopsy/casemodule/docs/screenshot.png
Core/src/org/sleuthkit/autopsy/datamodel/ranges.csv
/test/script/myconfig.xml /test/script/myconfig.xml
/test/script/*/*.xml /test/script/*/*.xml
.DS_Store .DS_Store
.*.swp .*.swp
Core/src/org/sleuthkit/autopsy/datamodel/ranges.csv
thunderbirdparser/release/modules/ext
/ImageGallery/release/
/thunderbirdparser/release/
/Experimental/release/

30
BootstrapIvy.xml Normal file
View File

@ -0,0 +1,30 @@
<?xml version="1.0" encoding="UTF-8"?>
<project name="BootstrapIvy" default="all" basedir="." xmlns:ivy="antlib:org.apache.ivy.ant">
<property name="ivy.install.version" value="2.3.0-rc2" />
<condition property="ivy.home" value="${env.IVY_HOME}">
<isset property="env.IVY_HOME" />
</condition>
<property name="ivy.home" value="${user.home}/.ant" />
<property name="ivy.jar.dir" value="${ivy.home}/lib" />
<property name="ivy.jar.file" value="${ivy.jar.dir}/ivy.jar" />
<target name="download-ivy" unless="offline">
<available file="${ivy.jar.file}" property="ivy.available"/>
<antcall target="-download-ivy" />
</target>
<target name="-download-ivy" unless="ivy.available">
<mkdir dir="${ivy.jar.dir}"/>
<get src="http://repo2.maven.org/maven2/org/apache/ivy/ivy/${ivy.install.version}/ivy-${ivy.install.version}.jar"
dest="${ivy.jar.file}" usetimestamp="true"/>
</target>
<!-- init-ivy will bootstrap Ivy if the user doesn't have it already -->
<target name="init-ivy" depends="download-ivy" unless="ivy.lib.path">
<path id="ivy.lib.path">
<fileset dir="${ivy.jar.dir}" includes="*.jar"/>
</path>
<taskdef resource="org/apache/ivy/ant/antlib.xml"
uri="antlib:org.apache.ivy.ant" classpathref="ivy.lib.path"/>
</target>
</project>

View File

@ -2,10 +2,43 @@
<!-- You may freely edit this file. See harness/README in the NetBeans platform --> <!-- You may freely edit this file. See harness/README in the NetBeans platform -->
<!-- for some information on what you could do (e.g. targets to override). --> <!-- for some information on what you could do (e.g. targets to override). -->
<!-- If you delete this file and reopen the project it will be recreated. --> <!-- If you delete this file and reopen the project it will be recreated. -->
<project name="org.sleuthkit.autopsy.core" default="netbeans" basedir="."> <project name="org.sleuthkit.autopsy.core" default="netbeans" basedir="." xmlns:ivy="antlib:org.apache.ivy.ant" >
<description>Builds, tests, and runs the project org.sleuthkit.autopsy.core</description> <description>Builds, tests, and runs the project org.sleuthkit.autopsy.core</description>
<import file="nbproject/build-impl.xml"/> <import file="nbproject/build-impl.xml"/>
<import file="../BootstrapIvy.xml"/>
<property name="thirdparty.dir" value="${basedir}/../thirdparty" />
<property name="release.dir" value="${basedir}/release" />
<property name="modules.dir" value="${release.dir}/modules/" />
<property name="ext.dir" value="${modules.dir}/ext" />
<target name="get-InternalPythonModules" description="get internal python modules">
<copy todir="${release.dir}/InternalPythonModules" >
<fileset dir="{basedir}/../../InternalPythonModules"/>
</copy>
</target>
<target name="get-thirdparty-dependencies" description="get third-party dependencies">
<!--Copy openCV dependencies to release-->
<copy todir="${modules.dir}" >
<fileset dir="${thirdparty.dir}/opencv" />
</copy>
<!--Copy photorec to release-->
<copy todir="${release.dir}/photorec_exec" >
<fileset dir="${thirdparty.dir}/photorec_exec"/>
</copy>
<!--Copy other jars-->
<copy file="${thirdparty.dir}/rejistry/Rejistry-1.0-SNAPSHOT.jar" todir="${ext.dir}" />
<copy file="${thirdparty.dir}/sevenzip/sevenzipjbinding.jar" todir="${ext.dir}" />
<copy file="${thirdparty.dir}/sevenzip/sevenzipjbinding-AllPlatforms.jar" todir="${ext.dir}" />
<copy file="${thirdparty.dir}/stix/StixLib.jar" todir="${ext.dir}" />
<copy file="${thirdparty.dir}/jdom/jdom-2.0.5.jar" todir="${ext.dir}" />
<copy file="${thirdparty.dir}/jdom/jdom-2.0.5-contrib.jar" todir="${ext.dir}" />
</target>
<!-- Verify that the TSK_HOME env variable is set --> <!-- Verify that the TSK_HOME env variable is set -->
<target name="findTSK"> <target name="findTSK">
<property environment="env"/> <property environment="env"/>
@ -18,25 +51,51 @@
<target name="getTSKJars" depends="findTSK"> <target name="getTSKJars" depends="findTSK">
<property environment="env"/> <property environment="env"/>
<copy file="${env.TSK_HOME}/bindings/java/dist/Tsk_DataModel_PostgreSQL.jar" tofile="${basedir}/release/modules/ext/Tsk_DataModel_PostgreSQL.jar"/> <copy file="${env.TSK_HOME}/bindings/java/dist/Tsk_DataModel_PostgreSQL.jar"
<copy file="${env.TSK_HOME}/bindings/java/lib/sqlite-jdbc-3.8.11.jar" tofile="${basedir}/release/modules/ext/sqlite-jdbc-3.8.11.jar"/> tofile="${basedir}/release/modules/ext/Tsk_DataModel_PostgreSQL.jar"/>
<copy file="${env.TSK_HOME}/bindings/java/lib/postgresql-9.4.1211.jre7.jar" tofile="${basedir}/release/modules/ext/postgresql-9.4.1211.jre7.jar"/> <copy file="${env.TSK_HOME}/bindings/java/lib/sqlite-jdbc-3.8.11.jar"
<copy file="${env.TSK_HOME}/bindings/java/lib/mchange-commons-java-0.2.9.jar" tofile="${basedir}/release/modules/ext/mchange-commons-java-0.2.9.jar"/> tofile="${basedir}/release/modules/ext/sqlite-jdbc-3.8.11.jar"/>
<copy file="${env.TSK_HOME}/bindings/java/lib/c3p0-0.9.5.jar" tofile="${basedir}/release/modules/ext/c3p0-0.9.5.jar"/> <copy file="${env.TSK_HOME}/bindings/java/lib/postgresql-9.4.1211.jre7.jar"
<copy file="${env.TSK_HOME}/bindings/java/lib/sqlite-jdbc-3.8.11.jar" tofile="${basedir}/release/modules/ext/sqlite-jdbc-3.8.11.jar"/> tofile="${basedir}/release/modules/ext/postgresql-9.4.1211.jre7.jar"/>
<copy file="${env.TSK_HOME}/bindings/java/lib/mchange-commons-java-0.2.9.jar"
tofile="${basedir}/release/modules/ext/mchange-commons-java-0.2.9.jar"/>
<copy file="${env.TSK_HOME}/bindings/java/lib/c3p0-0.9.5.jar"
tofile="${basedir}/release/modules/ext/c3p0-0.9.5.jar"/>
</target> </target>
<target name="download-binlist">
<target name="download-binlist" description="Download the din list data file used to enrich credit card numbers">
<get src="https://raw.githubusercontent.com/binlist/data/master/ranges.csv" <get src="https://raw.githubusercontent.com/binlist/data/master/ranges.csv"
dest="src\org\sleuthkit\autopsy\datamodel" dest="src\org\sleuthkit\autopsy\datamodel"
ignoreerrors="true" ignoreerrors="true"
verbose="true"/> verbose="true"/>
</target> </target>
<target name="init" depends="basic-init,files-init,build-init,-javac-init"> <target name="init" depends="basic-init,files-init,build-init,-javac-init,init-ivy">
<antcall target="download-binlist" /> <mkdir dir="${ext.dir}"/>
<copy file="${thirdparty.dir}/LICENSE-2.0.txt" todir="${ext.dir}" />
<!-- fetch all the dependencies from Ivy and stick them in the right places -->
<ivy:resolve/>
<ivy:retrieve conf="core" sync="true" pattern="release/modules/ext/[artifact]-[revision](-[classifier]).[ext]" />
<!-- get additional deps --> <!-- get additional deps -->
<antcall target="getTSKJars" /> <antcall target="getTSKJars" />
<antcall target="get-thirdparty-dependencies" />
<antcall target="get-InternalPythonModules"/>
<!--Donwload the bin list used for credit card number enrichment-->
<antcall target="download-binlist" />
</target>
<target name="clean" depends="projectized-common.clean">
<!--Override clean to delete jars, etc downloaded with Ivy
or copied in from thirdparty folder. This way we don't end up with
out-of-date/unneeded stuff in the installer-->
<mkdir dir="${release.dir}"/>
<delete includeemptydirs="true" >
<fileset dir="${release.dir}" includes="**/*"/>
</delete>
</target> </target>
</project> </project>

25
Core/ivy.xml Normal file
View File

@ -0,0 +1,25 @@
<ivy-module version="2.0">
<info organisation="org.sleuthkit.autopsy" module="emailparser"/>
<configurations >
<!-- module dependencies -->
<conf name="core"/>
</configurations>
<dependencies >
<dependency conf="core->default" org="org.apache.activemq" name="activemq-all" rev="5.11.1"/>
<dependency conf="core->default" org="org.apache.curator" name="curator-client" rev="2.8.0"/>
<dependency conf="core->default" org="org.apache.curator" name="curator-framework" rev="2.8.0"/>
<dependency conf="core->default" org="org.apache.curator" name="curator-recipes" rev="2.8.0"/>
<dependency conf="core->default" org="org.python" name="jython-standalone" rev="2.7.0" />
<dependency conf="core->default" org="com.drewnoakes" name="metadata-extractor" rev="2.8.1"/>
<dependency conf="core->default" org="org.apache.tika" name="tika-core" rev="1.5"/>
<dependency conf="core->default" org="com.adobe.xmp" name="xmpcore" rev="5.1.2"/>
<dependency conf="core->default" org="org.apache.zookeeper" name="zookeeper" rev="3.4.6"/>
</dependencies>
</ivy-module>

9
Core/ivysettings.xml Normal file
View File

@ -0,0 +1,9 @@
<ivysettings>
<settings defaultResolver="main"/>
<resolvers>
<chain name="main">
<ibiblio name="central" m2compatible="true"/>
<ibiblio name="maven.restlet.org" root="http://maven.restlet.com" m2compatible="true" />
</chain>
</resolvers>
</ivysettings>

Binary file not shown.

View File

@ -1,18 +0,0 @@
Copyright 2002-2012 Drew Noakes
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
More information about this project is available at:
http://drewnoakes.com/code/exif/
http://code.google.com/p/metadata-extractor/

View File

@ -53,26 +53,38 @@ public final class CaseMetadata {
private static final String FILE_EXTENSION = ".aut"; private static final String FILE_EXTENSION = ".aut";
private static final DateFormat DATE_FORMAT = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss (z)"); private static final DateFormat DATE_FORMAT = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss (z)");
//fields from schema version 1
private static final String SCHEMA_VERSION_ONE = "1.0"; private static final String SCHEMA_VERSION_ONE = "1.0";
private static final String SCHEMA_VERSION_TWO = "2.0";
private final static String AUTOPSY_VERSION_ELEMENT_NAME = "AutopsyCreatedVersion"; //NON-NLS
private final static String CASE_DATABASE_NAME_ELEMENT_NAME = "DatabaseName"; //NON-NLS
private final static String TEXT_INDEX_NAME_ELEMENT = "TextIndexName"; //NON-NLS
private static final String CURRENT_SCHEMA_VERSION = "3.0";
private final static String ROOT_ELEMENT_NAME = "AutopsyCase"; //NON-NLS private final static String ROOT_ELEMENT_NAME = "AutopsyCase"; //NON-NLS
private final static String SCHEMA_VERSION_ELEMENT_NAME = "SchemaVersion"; //NON-NLS private final static String SCHEMA_VERSION_ELEMENT_NAME = "SchemaVersion"; //NON-NLS
private final static String CREATED_DATE_ELEMENT_NAME = "CreatedDate"; //NON-NLS private final static String CREATED_DATE_ELEMENT_NAME = "CreatedDate"; //NON-NLS
private final static String MODIFIED_DATE_ELEMENT_NAME = "ModifiedDate"; //NON-NLS private final static String AUTOPSY_VERSION_ELEMENT_NAME = "AutopsyCreatedVersion"; //NON-NLS
private final static String AUTOPSY_CREATED_BY_ELEMENT_NAME = "CreatedByAutopsyVersion"; //NON-NLS
private final static String AUTOPSY_SAVED_BY_ELEMENT_NAME = "SavedByAutopsyVersion"; //NON-NLS
private final static String CASE_ELEMENT_NAME = "Case"; //NON-NLS private final static String CASE_ELEMENT_NAME = "Case"; //NON-NLS
private final static String CASE_NAME_ELEMENT_NAME = "Name"; //NON-NLS private final static String CASE_NAME_ELEMENT_NAME = "Name"; //NON-NLS
private final static String CASE_DISPLAY_NAME_ELEMENT_NAME = "DisplayName"; //NON-NLS
private final static String CASE_NUMBER_ELEMENT_NAME = "Number"; //NON-NLS private final static String CASE_NUMBER_ELEMENT_NAME = "Number"; //NON-NLS
private final static String EXAMINER_ELEMENT_NAME = "Examiner"; //NON-NLS private final static String EXAMINER_ELEMENT_NAME = "Examiner"; //NON-NLS
private final static String CASE_TYPE_ELEMENT_NAME = "CaseType"; //NON-NLS private final static String CASE_TYPE_ELEMENT_NAME = "CaseType"; //NON-NLS
private final static String CASE_DATABASE_ELEMENT_NAME = "Database"; //NON-NLS private final static String CASE_DATABASE_NAME_ELEMENT_NAME = "DatabaseName"; //NON-NLS
private final static String TEXT_INDEX_NAME_ELEMENT = "TextIndexName"; //NON-NLS
//fields from schema version 2
private static final String SCHEMA_VERSION_TWO = "2.0";
private final static String AUTOPSY_CREATED_BY_ELEMENT_NAME = "CreatedByAutopsyVersion"; //NON-NLS
private final static String CASE_DATABASE_ABSOLUTE_PATH_ELEMENT_NAME = "Database"; //NON-NLS
private final static String TEXT_INDEX_ELEMENT = "TextIndex"; //NON-NLS private final static String TEXT_INDEX_ELEMENT = "TextIndex"; //NON-NLS
//fields from schema version 3
private static final String SCHEMA_VERSION_THREE = "3.0";
private final static String CASE_DISPLAY_NAME_ELEMENT_NAME = "DisplayName"; //NON-NLS
private final static String CASE_DATABASE_NAME_RELATIVE_ELEMENT_NAME = "CaseDatabase"; //NON-NLS
//unread fields, these are regenerated on save
private final static String MODIFIED_DATE_ELEMENT_NAME = "ModifiedDate"; //NON-NLS
private final static String AUTOPSY_SAVED_BY_ELEMENT_NAME = "SavedByAutopsyVersion"; //NON-NLS
private static final String CURRENT_SCHEMA_VERSION = SCHEMA_VERSION_THREE;
private final Path metadataFilePath; private final Path metadataFilePath;
private Case.CaseType caseType; private Case.CaseType caseType;
private String caseName; private String caseName;
@ -80,6 +92,7 @@ public final class CaseMetadata {
private String caseNumber; private String caseNumber;
private String examiner; private String examiner;
private String caseDatabaseName; private String caseDatabaseName;
private String caseDatabasePath;
private String textIndexName; private String textIndexName;
private String createdDate; private String createdDate;
private String createdByVersion; private String createdByVersion;
@ -368,7 +381,8 @@ public final class CaseMetadata {
createChildElement(doc, caseElement, CASE_NUMBER_ELEMENT_NAME, caseNumber); createChildElement(doc, caseElement, CASE_NUMBER_ELEMENT_NAME, caseNumber);
createChildElement(doc, caseElement, EXAMINER_ELEMENT_NAME, examiner); createChildElement(doc, caseElement, EXAMINER_ELEMENT_NAME, examiner);
createChildElement(doc, caseElement, CASE_TYPE_ELEMENT_NAME, caseType.toString()); createChildElement(doc, caseElement, CASE_TYPE_ELEMENT_NAME, caseType.toString());
createChildElement(doc, caseElement, CASE_DATABASE_ELEMENT_NAME, caseDatabaseName); createChildElement(doc, caseElement, CASE_DATABASE_ABSOLUTE_PATH_ELEMENT_NAME, caseDatabasePath);
createChildElement(doc, caseElement, CASE_DATABASE_NAME_RELATIVE_ELEMENT_NAME, caseDatabaseName);
createChildElement(doc, caseElement, TEXT_INDEX_ELEMENT, textIndexName); createChildElement(doc, caseElement, TEXT_INDEX_ELEMENT, textIndexName);
} }
@ -440,19 +454,27 @@ public final class CaseMetadata {
if (schemaVersion.equals(SCHEMA_VERSION_ONE)) { if (schemaVersion.equals(SCHEMA_VERSION_ONE)) {
this.caseDatabaseName = getElementTextContent(caseElement, CASE_DATABASE_NAME_ELEMENT_NAME, true); this.caseDatabaseName = getElementTextContent(caseElement, CASE_DATABASE_NAME_ELEMENT_NAME, true);
this.textIndexName = getElementTextContent(caseElement, TEXT_INDEX_NAME_ELEMENT, true); this.textIndexName = getElementTextContent(caseElement, TEXT_INDEX_NAME_ELEMENT, true);
} else if (schemaVersion.equals(SCHEMA_VERSION_TWO)) {
this.caseDatabaseName = getElementTextContent(caseElement, CASE_DATABASE_ABSOLUTE_PATH_ELEMENT_NAME, true);
this.textIndexName = getElementTextContent(caseElement, TEXT_INDEX_ELEMENT, false);
} else { } else {
this.caseDatabaseName = getElementTextContent(caseElement, CASE_DATABASE_ELEMENT_NAME, true); this.caseDatabaseName = getElementTextContent(caseElement, CASE_DATABASE_NAME_RELATIVE_ELEMENT_NAME, true);
this.textIndexName = getElementTextContent(caseElement, TEXT_INDEX_ELEMENT, false); this.textIndexName = getElementTextContent(caseElement, TEXT_INDEX_ELEMENT, false);
} }
/* /*
* Fix up the case database name due to a bug that for a time caused * Fix up the case database name due to a bug that for a time caused
* the absolute paths of single-user case databases to be stored. * the absolute paths of single-user case databases to be stored.
* Derive the missing (absolute/relative) value from the one
* present.
*/ */
Path possibleAbsoluteCaseDbPath = Paths.get(this.caseDatabaseName); Path possibleAbsoluteCaseDbPath = Paths.get(this.caseDatabaseName);
Path caseDirectoryPath = Paths.get(getCaseDirectory());
if (possibleAbsoluteCaseDbPath.getNameCount() > 1) { if (possibleAbsoluteCaseDbPath.getNameCount() > 1) {
Path caseDirectoryPath = Paths.get(getCaseDirectory()); this.caseDatabasePath = this.caseDatabaseName;
this.caseDatabaseName = caseDirectoryPath.relativize(possibleAbsoluteCaseDbPath).toString(); this.caseDatabaseName = caseDirectoryPath.relativize(possibleAbsoluteCaseDbPath).toString();
} else {
this.caseDatabasePath = caseDirectoryPath.resolve(caseDatabaseName).toAbsolutePath().toString();
} }
} catch (ParserConfigurationException | SAXException | IOException ex) { } catch (ParserConfigurationException | SAXException | IOException ex) {

View File

@ -501,8 +501,6 @@ final class LocalDiskPanel extends JPanel {
*/ */
private class LocalDiskModel implements TableModel { private class LocalDiskModel implements TableModel {
private List<LocalDisk> physicalDrives = new ArrayList<>();
private List<LocalDisk> partitions = new ArrayList<>();
private LocalDiskThread worker = null; private LocalDiskThread worker = null;
private boolean ready = false; private boolean ready = false;
private volatile boolean loadingDisks = false; private volatile boolean loadingDisks = false;
@ -609,6 +607,8 @@ final class LocalDiskPanel extends JPanel {
class LocalDiskThread extends SwingWorker<Object, Void> { class LocalDiskThread extends SwingWorker<Object, Void> {
private final Logger logger = Logger.getLogger(LocalDiskThread.class.getName()); private final Logger logger = Logger.getLogger(LocalDiskThread.class.getName());
private List<LocalDisk> physicalDrives = new ArrayList<>();
private List<LocalDisk> partitions = new ArrayList<>();
@Override @Override
protected Object doInBackground() throws Exception { protected Object doInBackground() throws Exception {
@ -674,10 +674,6 @@ final class LocalDiskPanel extends JPanel {
pathTextField.setText(""); pathTextField.setText("");
fireUpdateEvent(); fireUpdateEvent();
ready = true; ready = true;
} else {
//this should not be possible but happens
//possible threading error when this method is called while running
logger.log(Level.INFO, "Loading local disks was canceled"); //NON-NLS
} }
} }
diskTable.revalidate(); diskTable.revalidate();

View File

@ -89,16 +89,18 @@ public class ArtifactStringContent implements StringContent {
* table. * table.
*/ */
buffer.append("<table border='1'>"); //NON-NLS buffer.append("<table border='1'>"); //NON-NLS
// header row
buffer.append("<tr>"); //NON-NLS buffer.append("<tr>"); //NON-NLS
buffer.append("<td><b>"); //NON-NLS buffer.append("<th><b>"); //NON-NLS
buffer.append(Bundle.ArtifactStringContent_attrsTableHeader_type()); buffer.append(Bundle.ArtifactStringContent_attrsTableHeader_type());
buffer.append("</b></td>"); //NON-NLS buffer.append("</b></th>"); //NON-NLS
buffer.append("<td><b>"); //NON-NLS buffer.append("<th><b>"); //NON-NLS
buffer.append(Bundle.ArtifactStringContent_attrsTableHeader_value()); buffer.append(Bundle.ArtifactStringContent_attrsTableHeader_value());
buffer.append("</b></td>"); //NON-NLS buffer.append("</b></th>"); //NON-NLS
buffer.append("<td><b>"); //NON-NLS buffer.append("<th><b>"); //NON-NLS
buffer.append(Bundle.ArtifactStringContent_attrsTableHeader_sources()); buffer.append(Bundle.ArtifactStringContent_attrsTableHeader_sources());
buffer.append("</b></td>"); //NON-NLS buffer.append("</b></th>"); //NON-NLS
buffer.append("</tr>\n"); //NON-NLS buffer.append("</tr>\n"); //NON-NLS
try { try {
Content content = artifact.getSleuthkitCase().getContentById(artifact.getObjectID()); Content content = artifact.getSleuthkitCase().getContentById(artifact.getObjectID());
@ -108,64 +110,42 @@ public class ArtifactStringContent implements StringContent {
*/ */
for (BlackboardAttribute attr : artifact.getAttributes()) { for (BlackboardAttribute attr : artifact.getAttributes()) {
/*
* Attribute display name column.
*/
buffer.append("<tr><td>"); //NON-NLS
buffer.append(attr.getAttributeType().getDisplayName());
buffer.append("</td>"); //NON-NLS
/* /*
* Attribute value column. * Attribute value column.
*/ */
buffer.append("<td>"); //NON-NLS String value = "";
switch (attr.getAttributeType().getValueType()) { switch (attr.getAttributeType().getValueType()) {
case STRING: case STRING:
String str = attr.getValueString();
str = str.replaceAll(" ", "&nbsp;"); //NON-NLS
str = str.replaceAll("<", "&lt;"); //NON-NLS
str = str.replaceAll(">", "&gt;"); //NON-NLS
str = str.replaceAll("(\r\n|\n)", "<br />"); //NON-NLS
buffer.append(str);
break;
case INTEGER: case INTEGER:
case LONG: case LONG:
case DOUBLE: case DOUBLE:
buffer.append(attr.getDisplayString());
break;
case BYTE: case BYTE:
buffer.append(Arrays.toString(attr.getValueBytes())); default:
value = attr.getDisplayString();
break; break;
// Use Autopsy date formatting settings, not TSK defaults
case DATETIME: case DATETIME:
long epoch = attr.getValueLong(); long epoch = attr.getValueLong();
String time = "0000-00-00 00:00:00"; value = "0000-00-00 00:00:00";
if (null != content && 0 != epoch) { if (null != content && 0 != epoch) {
dateFormatter.setTimeZone(ContentUtils.getTimeZone(content)); dateFormatter.setTimeZone(ContentUtils.getTimeZone(content));
time = dateFormatter.format(new java.util.Date(epoch * 1000)); value = dateFormatter.format(new java.util.Date(epoch * 1000));
} }
buffer.append(time);
break; break;
} }
buffer.append("</td>"); //NON-NLS
/* /*
* Attribute sources column. * Attribute sources column.
*/ */
buffer.append("<td>"); //NON-NLS String sources = StringUtils.join(attr.getSources(), ", ");
buffer.append(StringUtils.join(attr.getSources(), ", ")); buffer.append(makeTableRow(attr.getAttributeType().getDisplayName(), value, sources));
buffer.append("</td>"); //NON-NLS
buffer.append("</tr>\n"); //NON-NLS
} }
/* /*
* Add a row for the source content path. * Add a row for the source content path.
*/ */
buffer.append("<tr>"); //NON-NLS
buffer.append("<td>"); //NON-NLS
buffer.append(NbBundle.getMessage(this.getClass(), "ArtifactStringContent.getStr.srcFilePath.text"));
buffer.append("</td>"); //NON-NLS
buffer.append("<td>"); //NON-NLS
String path = ""; String path = "";
try { try {
if (null != content) { if (null != content) {
@ -175,33 +155,24 @@ public class ArtifactStringContent implements StringContent {
logger.log(Level.SEVERE, String.format("Error getting source content path for artifact (artifact_id=%d, obj_id=%d)", artifact.getArtifactID(), artifact.getObjectID()), ex); logger.log(Level.SEVERE, String.format("Error getting source content path for artifact (artifact_id=%d, obj_id=%d)", artifact.getArtifactID(), artifact.getObjectID()), ex);
path = Bundle.ArtifactStringContent_failedToGetSourcePath_message(); path = Bundle.ArtifactStringContent_failedToGetSourcePath_message();
} }
buffer.append(path);
buffer.append("</td>"); //NON-NLS buffer.append(makeTableRow(NbBundle.getMessage(this.getClass(), "ArtifactStringContent.getStr.srcFilePath.text"),
buffer.append("</tr>\n"); //NON-NLS path, ""));
/* /*
* Add a row for the artifact id. * Add a row for the artifact id.
*/ */
buffer.append("<tr><td>"); //NON-NLS buffer.append(makeTableRow(NbBundle.getMessage(this.getClass(), "ArtifactStringContent.getStr.artifactId.text"),
buffer.append(NbBundle.getMessage(this.getClass(), "ArtifactStringContent.getStr.artifactId.text")); Long.toString(artifact.getArtifactID()), ""));
buffer.append("</td><td>"); //NON-NLS
buffer.append(artifact.getArtifactID());
buffer.append("</td>"); //NON-NLS
buffer.append("</tr>\n"); //NON-NLS
/*
* Finish the document
*/
buffer.append("</table>"); //NON-NLS
buffer.append("</html>\n"); //NON-NLS
stringContent = buffer.toString();
} catch (TskCoreException ex) { } catch (TskCoreException ex) {
logger.log(Level.SEVERE, String.format("Error getting data for artifact (artifact_id=%d)", artifact.getArtifactID()), ex); logger.log(Level.SEVERE, String.format("Error getting data for artifact (artifact_id=%d)", artifact.getArtifactID()), ex);
buffer.append("<tr><td>"); //NON-NLS buffer.append(makeTableRow(Bundle.ArtifactStringContent_failedToGetAttributes_message(), "", ""));
buffer.append(Bundle.ArtifactStringContent_failedToGetAttributes_message()); } finally {
buffer.append("</td>"); //NON-NLS /*
buffer.append("</tr>\n"); //NON-NLS * Finish the document
*/
buffer.append("</table>"); //NON-NLS buffer.append("</table>"); //NON-NLS
buffer.append("</html>\n"); //NON-NLS buffer.append("</html>\n"); //NON-NLS
stringContent = buffer.toString(); stringContent = buffer.toString();
@ -210,5 +181,26 @@ public class ArtifactStringContent implements StringContent {
return stringContent; return stringContent;
} }
// escape special HTML characters
private String escapeHtmlString(String str) {
str = str.replaceAll(" ", "&nbsp;"); //NON-NLS
str = str.replaceAll("<", "&lt;"); //NON-NLS
str = str.replaceAll(">", "&gt;"); //NON-NLS
str = str.replaceAll("(\r\n|\n)", "<br />"); //NON-NLS
return str;
}
/**
* Make a row in the result table
* @param type String for column1 (Type of attribute))
* @param value String for column2 (value of attribute)
* @param source Column 3 (attribute source)
* @return HTML formatted string of these values
*/
private String makeTableRow(String type, String value, String source) {
String row = "<tr><td>" + escapeHtmlString(type) + "</td><td>" + escapeHtmlString(value) + "</td><td>" + escapeHtmlString(source) + "</td></tr>";
return row;
}
} }

View File

@ -114,7 +114,7 @@ final class IngestProfileSelectionPanel extends JPanel {
constraints.gridx = 0; constraints.gridx = 0;
constraints.gridy = 0; constraints.gridy = 0;
constraints.weighty = .0; constraints.weighty = .0;
constraints.anchor = GridBagConstraints.FIRST_LINE_START; constraints.anchor = GridBagConstraints.LINE_START;
addButton(CUSTOM_SETTINGS_DISPLAY_NAME, wizardPanel.getDefaultContext(), CUSTOM_SETTINGS_DESCRIPTION, gridBagLayout, constraints); addButton(CUSTOM_SETTINGS_DISPLAY_NAME, wizardPanel.getDefaultContext(), CUSTOM_SETTINGS_DESCRIPTION, gridBagLayout, constraints);

View File

@ -59,4 +59,12 @@
<!-- overrode depends attribute --> <!-- overrode depends attribute -->
</target> </target>
<property name="ext.dir" value="release/modules/ext" />
<target name="clean" depends="projectized-common.clean">
<!--Override clean to delete jars, etc downloaded with Ivy,
or copied in from thirdparty folder. This way we don't end up with
out-of-date/unneeded stuff in the installer-->
<delete dir="${ext.dir}"/>
</target>
</project> </project>

View File

@ -49,22 +49,22 @@
<dependency conf="autopsy_core->*" org="com.github.spullara.mustache.java" name="compiler" rev="0.9.1" /> <dependency conf="autopsy_core->*" org="com.github.spullara.mustache.java" name="compiler" rev="0.9.1" />
<!-- image support for autopsy and image gallery --> <!-- image support for autopsy and image gallery -->
<dependency conf="autopsy_core->*" org="com.twelvemonkeys.common" name="common-lang" rev="3.2" /> <dependency conf="autopsy_core->default" org="com.twelvemonkeys.common" name="common-lang" rev="3.2" />
<dependency conf="autopsy_core->*" org="com.twelvemonkeys.common" name="common-io" rev="3.2" /> <dependency conf="autopsy_core->default" org="com.twelvemonkeys.common" name="common-io" rev="3.2" />
<dependency conf="autopsy_core->*" org="com.twelvemonkeys.common" name="common-image" rev="3.2" /> <dependency conf="autopsy_core->default" org="com.twelvemonkeys.common" name="common-image" rev="3.2" />
<dependency conf="autopsy_core->*" org="com.twelvemonkeys.imageio" name="imageio-jpeg" rev="3.2" /> <dependency conf="autopsy_core->default" org="com.twelvemonkeys.imageio" name="imageio-jpeg" rev="3.2" />
<dependency conf="autopsy_core->*" org="com.twelvemonkeys.imageio" name="imageio-bmp" rev="3.2" /> <dependency conf="autopsy_core->default" org="com.twelvemonkeys.imageio" name="imageio-bmp" rev="3.2" />
<dependency conf="autopsy_core->*" org="com.twelvemonkeys.imageio" name="imageio-tiff" rev="3.2" /> <dependency conf="autopsy_core->default" org="com.twelvemonkeys.imageio" name="imageio-tiff" rev="3.2" />
<dependency conf="autopsy_core->*" org="com.twelvemonkeys.imageio" name="imageio-pnm" rev="3.2" /> <dependency conf="autopsy_core->default" org="com.twelvemonkeys.imageio" name="imageio-pnm" rev="3.2" />
<dependency conf="autopsy_core->*" org="com.twelvemonkeys.imageio" name="imageio-psd" rev="3.2" /> <dependency conf="autopsy_core->default" org="com.twelvemonkeys.imageio" name="imageio-psd" rev="3.2" />
<dependency conf="autopsy_core->*" org="com.twelvemonkeys.imageio" name="imageio-iff" rev="3.2" /> <dependency conf="autopsy_core->default" org="com.twelvemonkeys.imageio" name="imageio-iff" rev="3.2" />
<dependency conf="autopsy_core->*" org="com.twelvemonkeys.imageio" name="imageio-pcx" rev="3.2" /> <dependency conf="autopsy_core->default" org="com.twelvemonkeys.imageio" name="imageio-pcx" rev="3.2" />
<dependency conf="autopsy_core->*" org="com.twelvemonkeys.imageio" name="imageio-pict" rev="3.2" /> <dependency conf="autopsy_core->default" org="com.twelvemonkeys.imageio" name="imageio-pict" rev="3.2" />
<dependency conf="autopsy_core->*" org="com.twelvemonkeys.imageio" name="imageio-sgi" rev="3.2" /> <dependency conf="autopsy_core->default" org="com.twelvemonkeys.imageio" name="imageio-sgi" rev="3.2" />
<dependency conf="autopsy_core->*" org="com.twelvemonkeys.imageio" name="imageio-tga" rev="3.2" /> <dependency conf="autopsy_core->default" org="com.twelvemonkeys.imageio" name="imageio-tga" rev="3.2" />
<dependency conf="autopsy_core->*" org="com.twelvemonkeys.imageio" name="imageio-icns" rev="3.2" /> <dependency conf="autopsy_core->default" org="com.twelvemonkeys.imageio" name="imageio-icns" rev="3.2" />
<dependency conf="autopsy_core->*" org="com.twelvemonkeys.imageio" name="imageio-thumbsdb" rev="3.2" /> <dependency conf="autopsy_core->default" org="com.twelvemonkeys.imageio" name="imageio-thumbsdb" rev="3.2" />
<dependency conf="autopsy_core->*" org="com.twelvemonkeys.imageio" name="imageio-core" rev="3.2" /> <dependency conf="autopsy_core->default" org="com.twelvemonkeys.imageio" name="imageio-core" rev="3.2" />
<dependency conf="autopsy_core->*" org="com.twelvemonkeys.imageio" name="imageio-metadata" rev="3.2" /> <dependency conf="autopsy_core->default" org="com.twelvemonkeys.imageio" name="imageio-metadata" rev="3.2" />
</dependencies> </dependencies>
</ivy-module> </ivy-module>

View File

@ -2,7 +2,24 @@
<!-- You may freely edit this file. See harness/README in the NetBeans platform --> <!-- You may freely edit this file. See harness/README in the NetBeans platform -->
<!-- for some information on what you could do (e.g. targets to override). --> <!-- for some information on what you could do (e.g. targets to override). -->
<!-- If you delete this file and reopen the project it will be recreated. --> <!-- If you delete this file and reopen the project it will be recreated. -->
<project name="org.sleuthkit.autopsy.experimental" default="netbeans" basedir="."> <project name="org.sleuthkit.autopsy.experimental" default="netbeans" basedir="." xmlns:ivy="antlib:org.apache.ivy.ant">
<description>Builds, tests, and runs the project org.sleuthkit.autopsy.experimental.</description> <description>Builds, tests, and runs the project org.sleuthkit.autopsy.experimental.</description>
<import file="nbproject/build-impl.xml"/> <import file="nbproject/build-impl.xml"/>
<import file="../BootstrapIvy.xml"/>
<property name="release.dir" value="${basedir}/release" />
<target name="init" depends="basic-init,files-init,build-init,-javac-init,init-ivy">
<ivy:settings file="ivysettings.xml" />
<ivy:resolve/>
<ivy:retrieve sync="false" pattern="${release.dir}/modules/ext/[artifact]-[revision](-[classifier]).[ext]" />
</target>
<target name="clean" depends="projectized-common.clean">
<!--Override clean to delete jars, etc downloaded with Ivy
or copied in from thirdparty folder. This way we don't end up with
out-of-date/unneeded stuff in the installer-->
<mkdir dir="${release.dir}"/>
<delete includeemptydirs="true">
<fileset dir="${release.dir}" includes="**/*"/>
</delete>
</target>
</project> </project>

22
Experimental/ivy.xml Normal file
View File

@ -0,0 +1,22 @@
<ivy-module version="2.0">
<info organisation="org.sleuthkit.autopsy" module="corelibs"/>
<configurations >
<!-- module dependencies -->
<conf name="experimental"/>
</configurations>
<dependencies>
<dependency conf="experimental->default" org="com.github.lgooddatepicker" name="LGoodDatePicker" rev="4.3.1"/>
<dependency conf="experimental->default" org="org.apache.solr" name="solr-solrj" rev="4.9.1"/>
<dependency conf="experimental->default" org="org.apache.tika" name="tika-core" rev="1.5"/>
<dependency conf="experimental->default" org="org.postgresql" name="postgresql" rev="9.4-1201-jdbc41"/>
<dependency conf="experimental->default" org="com.mchange" name="c3p0" rev="0.9.5"/>
<dependency conf="experimental->default" org="com.fasterxml.jackson.core" name="jackson-core" rev="2.7.0"/>
<dependency conf="experimental->default" org="org.swinglabs.swingx" name="swingx-all" rev="1.6.4"/>
<exclude artifact="commons-io"/>
<exclude artifact="slf4j-api"/>
<exclude artifact="wstx-asl"/>
<exclude artifact="zookeeper"/>
</dependencies>
</ivy-module>

View File

@ -0,0 +1,10 @@
<ivysettings>
<settings defaultResolver="main"/>
<resolvers>
<chain name="main">
<ibiblio name="central" m2compatible="true"/>
<ibiblio name="ibiblio" m2compatible="true"/>
<ibiblio name="xerial" m2compatible="true" root="http://www.xerial.org/maven/repository/snapshot" />
</chain>
</resolvers>
</ivysettings>

View File

@ -5,4 +5,24 @@
<project name="org.sleuthkit.autopsy.imagegallery" default="netbeans" basedir="."> <project name="org.sleuthkit.autopsy.imagegallery" default="netbeans" basedir=".">
<description>Builds, tests, and runs the project org.sleuthkit.autopsy.imagegallery.</description> <description>Builds, tests, and runs the project org.sleuthkit.autopsy.imagegallery.</description>
<import file="nbproject/build-impl.xml"/> <import file="nbproject/build-impl.xml"/>
<property name="thirdparty.dir" value="${basedir}/../thirdparty" />
<property name="ext.dir" value="release/modules/ext" />
<target name="clean" depends="projectized-common.clean">
<!--Override clean to delete jars, etc downloaded with Ivy,
or copied in from thirdparty folder. This way we don't end up with
out-of-date/unneeded stuff in the installer-->
<delete dir="${ext.dir}"/>
</target>
<target name="get-thirdparty-jars" description="get third-party jar dependencies">
<mkdir dir="${ext.dir}"/>
<copy file="${thirdparty.dir}/sqlite-jdbc/sqlite-jdbc-3.7.8-SNAPSHOT.jar" todir="${ext.dir}" />
</target>
<target name="init" depends="basic-init,files-init,build-init,-javac-init">
<!-- copy jars not downloaded with Ivy -->
<antcall target="get-thirdparty-jars"/>
</target>
</project> </project>

View File

@ -5,41 +5,24 @@
<project name="org.sleuthkit.autopsy.keywordsearch" default="netbeans" basedir="." xmlns:ivy="antlib:org.apache.ivy.ant"> <project name="org.sleuthkit.autopsy.keywordsearch" default="netbeans" basedir="." xmlns:ivy="antlib:org.apache.ivy.ant">
<description>Builds, tests, and runs the project org.sleuthkit.autopsy.keywordsearch.</description> <description>Builds, tests, and runs the project org.sleuthkit.autopsy.keywordsearch.</description>
<import file="nbproject/build-impl.xml"/> <import file="nbproject/build-impl.xml"/>
<import file="../BootstrapIvy.xml"/>
<property name="release.dir" value="release" />
<property name="ivy.install.version" value="2.3.0-rc2" /> <target name="get-solr-deployment" description="copy the solr deployment into release">
<condition property="ivy.home" value="${env.IVY_HOME}"> <copy todir="${release.dir}/solr" >
<isset property="env.IVY_HOME" /> <fileset dir="solr"/>
</condition> </copy>
<property name="ivy.home" value="${user.home}/.ant" />
<property name="ivy.jar.dir" value="${ivy.home}/lib" />
<property name="ivy.jar.file" value="${ivy.jar.dir}/ivy.jar" />
<target name="download-ivy" unless="offline">
<available file="${ivy.jar.file}" property="ivy.available"/>
<antcall target="-download-ivy" />
</target> </target>
<target name="-download-ivy" unless="ivy.available"> <target name="get-solr-upgrader-jars" description="copy the solr index upgrader jars into release">
<mkdir dir="${ivy.jar.dir}"/> <copy file="SolrUpgradeTools/Solr4IndexUpgrade.jar"
<get src="http://repo2.maven.org/maven2/org/apache/ivy/ivy/${ivy.install.version}/ivy-${ivy.install.version}.jar" todir="${release.dir}/Solr4to5IndexUpgrade" />
dest="${ivy.jar.file}" usetimestamp="true"/> <copy file="SolrUpgradeTools/Solr5IndexUpgrade.jar"
</target> todir="${release.dir}/Solr5to6IndexUpgrade" />
<!-- init-ivy will bootstrap Ivy if the user doesn't have it already -->
<target name="init-ivy" depends="download-ivy" unless="ivy.lib.path">
<path id="ivy.lib.path">
<fileset dir="${ivy.jar.dir}" includes="*.jar"/>
</path>
<taskdef resource="org/apache/ivy/ant/antlib.xml"
uri="antlib:org.apache.ivy.ant" classpathref="ivy.lib.path"/>
</target> </target>
<target name="init" depends="basic-init,files-init,build-init,-javac-init,init-ivy"> <target name="init" depends="basic-init,files-init,build-init,-javac-init,init-ivy">
<!-- fetch all the dependencies from Ivy and stick them in the right places --> <!-- fetch all the dependencies from Ivy and stick them in the right places -->
<ivy:resolve/> <ivy:resolve/>
<ivy:retrieve conf="autopsy" sync="true" pattern="release/modules/ext/[artifact]-[revision](-[classifier]).[ext]" /> <ivy:retrieve conf="autopsy" sync="true" pattern="release/modules/ext/[artifact]-[revision](-[classifier]).[ext]" />
@ -47,7 +30,21 @@
<ivy:retrieve conf="solr-libs" sync="true" pattern="release/solr/solr/lib/[artifact]-[revision](-[classifier]).[ext]" /> <ivy:retrieve conf="solr-libs" sync="true" pattern="release/solr/solr/lib/[artifact]-[revision](-[classifier]).[ext]" />
<ivy:retrieve conf="slf4j-libs" sync="true" pattern="release/solr/lib/ext/[artifact]-[revision](-[classifier]).[ext]" /> <ivy:retrieve conf="slf4j-libs" sync="true" pattern="release/solr/lib/ext/[artifact]-[revision](-[classifier]).[ext]" />
<ivy:retrieve conf="servlet" sync="true" pattern="release/solr/lib/servlet-api-3.0.jar" /> <ivy:retrieve conf="servlet" sync="true" pattern="release/solr/lib/servlet-api-3.0.jar" />
<ivy:retrieve conf="solr4to5" sync="true" pattern="release/Solr4to5IndexUpgrade/lib/[artifact]-[revision](-[classifier]).[ext]" />
<ivy:retrieve conf="solr5to6" sync="true" pattern="release/Solr5to6IndexUpgrade/lib/[artifact]-[revision](-[classifier]).[ext]" />
<!--Copy Solr deployment and tools that arn't downloaded with Ivy-->
<antcall target="get-solr-deployment" />
<antcall target="get-solr-upgrader-jars" />
</target>
<target name="clean" depends="projectized-common.clean">
<!--Override clean to delete jars, etc downloaded with Ivy
or copied in from thirdparty folder. This way we don't end up with
out-of-date/unneeded stuff in the installer-->
<delete includeemptydirs="true">
<fileset dir="release" includes="**/*"/>
</delete>
</target> </target>
<target name="clean-all" depends="clean" description="Clear Ivy cache."> <target name="clean-all" depends="clean" description="Clear Ivy cache.">

View File

@ -5,6 +5,10 @@
<!-- module dependencies --> <!-- module dependencies -->
<conf name="autopsy"/> <conf name="autopsy"/>
<!-- Solr index upgrade tool dependencies -->
<conf name="solr4to5"/>
<conf name="solr5to6"/>
<!-- Solr server dependencies --> <!-- Solr server dependencies -->
<conf name="solr-libs"/> <conf name="solr-libs"/>
<conf name="jetty-libs"/> <conf name="jetty-libs"/>
@ -14,7 +18,20 @@
<dependencies> <dependencies>
<!-- Solr --> <!-- Solr -->
<dependency conf="solr-libs->default" org="org.apache.solr" name="solr-cell" rev="6.2.1"/> <dependency conf="solr-libs->default" org="org.apache.solr" name="solr-cell" rev="6.2.1"/>
<!-- Solr index upgrade -->
<dependency conf="solr4to5->default" org="org.apache.lucene" name="lucene-analyzers-common" rev="5.5.1"/>
<dependency conf="solr4to5->default" org="org.apache.lucene" name="lucene-backward-codecs" rev="5.5.1"/>
<dependency conf="solr4to5->default" org="org.apache.lucene" name="lucene-codecs" rev="5.5.1"/>
<dependency conf="solr4to5->default" org="org.apache.lucene" name="lucene-core" rev="5.5.1"/>
<dependency conf="solr5to6->default" org="org.apache.lucene" name="lucene-analyzers-common" rev="6.2.1"/>
<dependency conf="solr5to6->default" org="org.apache.lucene" name="lucene-backward-codecs" rev="6.2.1"/>
<dependency conf="solr5to6->default" org="org.apache.lucene" name="lucene-codecs" rev="6.2.1"/>
<dependency conf="solr5to6->default" org="org.apache.lucene" name="lucene-core" rev="6.2.1"/>
<!-- Autopsy --> <!-- Autopsy -->
<dependency conf="autopsy->*" org="org.apache.solr" name="solr-solrj" rev="6.2.1"/> <dependency conf="autopsy->*" org="org.apache.solr" name="solr-solrj" rev="6.2.1"/>
<dependency conf="autopsy->*" org="commons-lang" name="commons-lang" rev="2.4"/> <dependency conf="autopsy->*" org="commons-lang" name="commons-lang" rev="2.4"/>
@ -38,8 +55,8 @@
<dependency conf="slf4j-libs->default" org="org.slf4j" name="jcl-over-slf4j" rev="1.7.10"/> <dependency conf="slf4j-libs->default" org="org.slf4j" name="jcl-over-slf4j" rev="1.7.10"/>
<dependency conf="slf4j-libs->default" org="org.slf4j" name="jul-to-slf4j" rev="1.7.10"/> <dependency conf="slf4j-libs->default" org="org.slf4j" name="jul-to-slf4j" rev="1.7.10"/>
<!-- Tika 1.4 seems to declare a (transitive?) dependency on cleartk-util 3.2.2, but the most recent <!-- Tika 1.14 seems to declare a (transitive?) dependency on cleartk-util 3.2.2, but the most recent
version available is 2.0.0 Overriding the version worked--> version available is 2.0.0 Overriding the version worked-->
<override org="org.cleartk" module="cleartk-util" rev="2.0.0"/> <override org="org.cleartk" module="cleartk-util" rev="2.0.0"/>
</dependencies> </dependencies>

View File

@ -1,114 +1,114 @@
@REM @REM
@REM Licensed to the Apache Software Foundation (ASF) under one or more @REM Licensed to the Apache Software Foundation (ASF) under one or more
@REM contributor license agreements. See the NOTICE file distributed with @REM contributor license agreements. See the NOTICE file distributed with
@REM this work for additional information regarding copyright ownership. @REM this work for additional information regarding copyright ownership.
@REM The ASF licenses this file to You under the Apache License, Version 2.0 @REM The ASF licenses this file to You under the Apache License, Version 2.0
@REM (the "License"); you may not use this file except in compliance with @REM (the "License"); you may not use this file except in compliance with
@REM the License. You may obtain a copy of the License at @REM the License. You may obtain a copy of the License at
@REM @REM
@REM http://www.apache.org/licenses/LICENSE-2.0 @REM http://www.apache.org/licenses/LICENSE-2.0
@REM @REM
@REM Unless required by applicable law or agreed to in writing, software @REM Unless required by applicable law or agreed to in writing, software
@REM distributed under the License is distributed on an "AS IS" BASIS, @REM distributed under the License is distributed on an "AS IS" BASIS,
@REM WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @REM WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@REM See the License for the specific language governing permissions and @REM See the License for the specific language governing permissions and
@REM limitations under the License. @REM limitations under the License.
REM @echo off REM @echo off
REM By default the script will use JAVA_HOME to determine which java REM By default the script will use JAVA_HOME to determine which java
REM to use, but you can set a specific path for Solr to use without REM to use, but you can set a specific path for Solr to use without
REM affecting other Java applications on your server/workstation. REM affecting other Java applications on your server/workstation.
REM set SOLR_JAVA_HOME= REM set SOLR_JAVA_HOME=
REM Increase Java Min/Max Heap as needed to support your indexing / query needs REM Increase Java Min/Max Heap as needed to support your indexing / query needs
set SOLR_JAVA_MEM=-Xms512m -Xmx512m set SOLR_JAVA_MEM=-Xms512m -Xmx512m
REM Enable verbose GC logging REM Enable verbose GC logging
REM set GC_LOG_OPTS=-verbose:gc -XX:+PrintHeapAtGC -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintGCTimeStamps -XX:+PrintTenuringDistribution -XX:+PrintGCApplicationStoppedTime REM set GC_LOG_OPTS=-verbose:gc -XX:+PrintHeapAtGC -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintGCTimeStamps -XX:+PrintTenuringDistribution -XX:+PrintGCApplicationStoppedTime
REM These GC settings have shown to work well for a number of common Solr workloads REM These GC settings have shown to work well for a number of common Solr workloads
set GC_TUNE=-XX:NewRatio=3 ^ set GC_TUNE=-XX:NewRatio=3 ^
-XX:SurvivorRatio=4 ^ -XX:SurvivorRatio=4 ^
-XX:TargetSurvivorRatio=90 ^ -XX:TargetSurvivorRatio=90 ^
-XX:MaxTenuringThreshold=8 ^ -XX:MaxTenuringThreshold=8 ^
-XX:+UseConcMarkSweepGC ^ -XX:+UseConcMarkSweepGC ^
-XX:+UseParNewGC ^ -XX:+UseParNewGC ^
-XX:ConcGCThreads=4 -XX:ParallelGCThreads=4 ^ -XX:ConcGCThreads=4 -XX:ParallelGCThreads=4 ^
-XX:+CMSScavengeBeforeRemark ^ -XX:+CMSScavengeBeforeRemark ^
-XX:PretenureSizeThreshold=64m ^ -XX:PretenureSizeThreshold=64m ^
-XX:+UseCMSInitiatingOccupancyOnly ^ -XX:+UseCMSInitiatingOccupancyOnly ^
-XX:CMSInitiatingOccupancyFraction=50 ^ -XX:CMSInitiatingOccupancyFraction=50 ^
-XX:CMSMaxAbortablePrecleanTime=6000 ^ -XX:CMSMaxAbortablePrecleanTime=6000 ^
-XX:+CMSParallelRemarkEnabled ^ -XX:+CMSParallelRemarkEnabled ^
-XX:+ParallelRefProcEnabled -XX:+ParallelRefProcEnabled
REM Set the ZooKeeper connection string if using an external ZooKeeper ensemble REM Set the ZooKeeper connection string if using an external ZooKeeper ensemble
REM e.g. host1:2181,host2:2181/chroot REM e.g. host1:2181,host2:2181/chroot
REM Leave empty if not using SolrCloud REM Leave empty if not using SolrCloud
REM set ZK_HOST= REM set ZK_HOST=
REM Set the ZooKeeper client timeout (for SolrCloud mode) REM Set the ZooKeeper client timeout (for SolrCloud mode)
REM set ZK_CLIENT_TIMEOUT=15000 REM set ZK_CLIENT_TIMEOUT=15000
REM By default the start script uses "localhost"; override the hostname here REM By default the start script uses "localhost"; override the hostname here
REM for production SolrCloud environments to control the hostname exposed to cluster state REM for production SolrCloud environments to control the hostname exposed to cluster state
REM set SOLR_HOST=192.168.1.1 REM set SOLR_HOST=192.168.1.1
REM By default the start script uses UTC; override the timezone if needed REM By default the start script uses UTC; override the timezone if needed
REM set SOLR_TIMEZONE=UTC REM set SOLR_TIMEZONE=UTC
REM Set to true to activate the JMX RMI connector to allow remote JMX client applications REM Set to true to activate the JMX RMI connector to allow remote JMX client applications
REM to monitor the JVM hosting Solr; set to "false" to disable that behavior REM to monitor the JVM hosting Solr; set to "false" to disable that behavior
REM (false is recommended in production environments) REM (false is recommended in production environments)
set ENABLE_REMOTE_JMX_OPTS=false set ENABLE_REMOTE_JMX_OPTS=false
REM The script will use SOLR_PORT+10000 for the RMI_PORT or you can set it here REM The script will use SOLR_PORT+10000 for the RMI_PORT or you can set it here
REM set RMI_PORT=18983 REM set RMI_PORT=18983
REM Set the host interface to listen on. Jetty will listen on all interfaces (0.0.0.0) by default. REM Set the host interface to listen on. Jetty will listen on all interfaces (0.0.0.0) by default.
REM This must be an IPv4 ("a.b.c.d") or bracketed IPv6 ("[x::y]") address, not a hostname! REM This must be an IPv4 ("a.b.c.d") or bracketed IPv6 ("[x::y]") address, not a hostname!
set SOLR_JETTY_HOST=0.0.0.0 set SOLR_JETTY_HOST=0.0.0.0
set SOLR_OPTS=%SOLR_OPTS% -Djetty.host=%SOLR_JETTY_HOST% set SOLR_OPTS=%SOLR_OPTS% -Djetty.host=%SOLR_JETTY_HOST%
REM Set the thread stack size REM Set the thread stack size
set SOLR_OPTS=%SOLR_OPTS% -Xss256k set SOLR_OPTS=%SOLR_OPTS% -Xss256k
REM Anything you add to the SOLR_OPTS variable will be included in the java REM Anything you add to the SOLR_OPTS variable will be included in the java
REM start command line as-is, in ADDITION to other options. If you specify the REM start command line as-is, in ADDITION to other options. If you specify the
REM -a option on start script, those options will be appended as well. Examples: REM -a option on start script, those options will be appended as well. Examples:
REM set SOLR_OPTS=%SOLR_OPTS% -Dsolr.autoSoftCommit.maxTime=3000 REM set SOLR_OPTS=%SOLR_OPTS% -Dsolr.autoSoftCommit.maxTime=3000
REM set SOLR_OPTS=%SOLR_OPTS% -Dsolr.autoCommit.maxTime=60000 REM set SOLR_OPTS=%SOLR_OPTS% -Dsolr.autoCommit.maxTime=60000
REM set SOLR_OPTS=%SOLR_OPTS% -Dsolr.clustering.enabled=true REM set SOLR_OPTS=%SOLR_OPTS% -Dsolr.clustering.enabled=true
set SOLR_OPTS=%SOLR_OPTS% -Dbootstrap_confdir=../solr/configsets/AutopsyConfig/conf -Dcollection.configName=AutopsyConfig set SOLR_OPTS=%SOLR_OPTS% -Dbootstrap_confdir=../solr/configsets/AutopsyConfig/conf -Dcollection.configName=AutopsyConfig
REM Path to a directory for Solr to store cores and their data. By default, Solr will use server\solr REM Path to a directory for Solr to store cores and their data. By default, Solr will use server\solr
REM If solr.xml is not stored in ZooKeeper, this directory needs to contain solr.xml REM If solr.xml is not stored in ZooKeeper, this directory needs to contain solr.xml
REM set SOLR_HOME= REM set SOLR_HOME=
REM Sets the port Solr binds to, default is 8983 REM Sets the port Solr binds to, default is 8983
REM set SOLR_PORT=8983 REM set SOLR_PORT=8983
REM Uncomment to set SSL-related system properties REM Uncomment to set SSL-related system properties
REM Be sure to update the paths to the correct keystore for your environment REM Be sure to update the paths to the correct keystore for your environment
REM set SOLR_SSL_KEY_STORE=etc/solr-ssl.keystore.jks REM set SOLR_SSL_KEY_STORE=etc/solr-ssl.keystore.jks
REM set SOLR_SSL_KEY_STORE_PASSWORD=secret REM set SOLR_SSL_KEY_STORE_PASSWORD=secret
REM set SOLR_SSL_TRUST_STORE=etc/solr-ssl.keystore.jks REM set SOLR_SSL_TRUST_STORE=etc/solr-ssl.keystore.jks
REM set SOLR_SSL_TRUST_STORE_PASSWORD=secret REM set SOLR_SSL_TRUST_STORE_PASSWORD=secret
REM set SOLR_SSL_NEED_CLIENT_AUTH=false REM set SOLR_SSL_NEED_CLIENT_AUTH=false
REM set SOLR_SSL_WANT_CLIENT_AUTH=false REM set SOLR_SSL_WANT_CLIENT_AUTH=false
REM Uncomment if you want to override previously defined SSL values for HTTP client REM Uncomment if you want to override previously defined SSL values for HTTP client
REM otherwise keep them commented and the above values will automatically be set for HTTP clients REM otherwise keep them commented and the above values will automatically be set for HTTP clients
REM set SOLR_SSL_CLIENT_KEY_STORE= REM set SOLR_SSL_CLIENT_KEY_STORE=
REM set SOLR_SSL_CLIENT_KEY_STORE_PASSWORD= REM set SOLR_SSL_CLIENT_KEY_STORE_PASSWORD=
REM set SOLR_SSL_CLIENT_TRUST_STORE= REM set SOLR_SSL_CLIENT_TRUST_STORE=
REM setSOLR_SSL_CLIENT_TRUST_STORE_PASSWORD= REM setSOLR_SSL_CLIENT_TRUST_STORE_PASSWORD=
REM Settings for ZK ACL REM Settings for ZK ACL
REM set SOLR_ZK_CREDS_AND_ACLS=-DzkACLProvider=org.apache.solr.common.cloud.VMParamsAllAndReadonlyDigestZkACLProvider ^ REM set SOLR_ZK_CREDS_AND_ACLS=-DzkACLProvider=org.apache.solr.common.cloud.VMParamsAllAndReadonlyDigestZkACLProvider ^
REM -DzkCredentialsProvider=org.apache.solr.common.cloud.VMParamsSingleSetCredentialsDigestZkCredentialsProvider ^ REM -DzkCredentialsProvider=org.apache.solr.common.cloud.VMParamsSingleSetCredentialsDigestZkCredentialsProvider ^
REM -DzkDigestUsername=admin-user -DzkDigestPassword=CHANGEME-ADMIN-PASSWORD ^ REM -DzkDigestUsername=admin-user -DzkDigestPassword=CHANGEME-ADMIN-PASSWORD ^
REM -DzkDigestReadonlyUsername=readonly-user -DzkDigestReadonlyPassword=CHANGEME-READONLY-PASSWORD REM -DzkDigestReadonlyUsername=readonly-user -DzkDigestReadonlyPassword=CHANGEME-READONLY-PASSWORD
REM set SOLR_OPTS=%SOLR_OPTS% %SOLR_ZK_CREDS_AND_ACLS% REM set SOLR_OPTS=%SOLR_OPTS% %SOLR_ZK_CREDS_AND_ACLS%

View File

@ -1,113 +1,113 @@
@REM @REM
@REM Licensed to the Apache Software Foundation (ASF) under one or more @REM Licensed to the Apache Software Foundation (ASF) under one or more
@REM contributor license agreements. See the NOTICE file distributed with @REM contributor license agreements. See the NOTICE file distributed with
@REM this work for additional information regarding copyright ownership. @REM this work for additional information regarding copyright ownership.
@REM The ASF licenses this file to You under the Apache License, Version 2.0 @REM The ASF licenses this file to You under the Apache License, Version 2.0
@REM (the "License"); you may not use this file except in compliance with @REM (the "License"); you may not use this file except in compliance with
@REM the License. You may obtain a copy of the License at @REM the License. You may obtain a copy of the License at
@REM @REM
@REM http://www.apache.org/licenses/LICENSE-2.0 @REM http://www.apache.org/licenses/LICENSE-2.0
@REM @REM
@REM Unless required by applicable law or agreed to in writing, software @REM Unless required by applicable law or agreed to in writing, software
@REM distributed under the License is distributed on an "AS IS" BASIS, @REM distributed under the License is distributed on an "AS IS" BASIS,
@REM WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @REM WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@REM See the License for the specific language governing permissions and @REM See the License for the specific language governing permissions and
@REM limitations under the License. @REM limitations under the License.
@echo off @echo off
REM By default the script will use JAVA_HOME to determine which java REM By default the script will use JAVA_HOME to determine which java
REM to use, but you can set a specific path for Solr to use without REM to use, but you can set a specific path for Solr to use without
REM affecting other Java applications on your server/workstation. REM affecting other Java applications on your server/workstation.
REM set SOLR_JAVA_HOME= REM set SOLR_JAVA_HOME=
REM Increase Java Min/Max Heap as needed to support your indexing / query needs REM Increase Java Min/Max Heap as needed to support your indexing / query needs
set SOLR_JAVA_MEM=-Xms512m -Xmx512m set SOLR_JAVA_MEM=-Xms512m -Xmx512m
REM Enable verbose GC logging REM Enable verbose GC logging
set GC_LOG_OPTS=-verbose:gc -XX:+PrintHeapAtGC -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintGCTimeStamps -XX:+PrintTenuringDistribution -XX:+PrintGCApplicationStoppedTime set GC_LOG_OPTS=-verbose:gc -XX:+PrintHeapAtGC -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintGCTimeStamps -XX:+PrintTenuringDistribution -XX:+PrintGCApplicationStoppedTime
REM These GC settings have shown to work well for a number of common Solr workloads REM These GC settings have shown to work well for a number of common Solr workloads
set GC_TUNE=-XX:NewRatio=3 ^ set GC_TUNE=-XX:NewRatio=3 ^
-XX:SurvivorRatio=4 ^ -XX:SurvivorRatio=4 ^
-XX:TargetSurvivorRatio=90 ^ -XX:TargetSurvivorRatio=90 ^
-XX:MaxTenuringThreshold=8 ^ -XX:MaxTenuringThreshold=8 ^
-XX:+UseConcMarkSweepGC ^ -XX:+UseConcMarkSweepGC ^
-XX:+UseParNewGC ^ -XX:+UseParNewGC ^
-XX:ConcGCThreads=4 -XX:ParallelGCThreads=4 ^ -XX:ConcGCThreads=4 -XX:ParallelGCThreads=4 ^
-XX:+CMSScavengeBeforeRemark ^ -XX:+CMSScavengeBeforeRemark ^
-XX:PretenureSizeThreshold=64m ^ -XX:PretenureSizeThreshold=64m ^
-XX:+UseCMSInitiatingOccupancyOnly ^ -XX:+UseCMSInitiatingOccupancyOnly ^
-XX:CMSInitiatingOccupancyFraction=50 ^ -XX:CMSInitiatingOccupancyFraction=50 ^
-XX:CMSMaxAbortablePrecleanTime=6000 ^ -XX:CMSMaxAbortablePrecleanTime=6000 ^
-XX:+CMSParallelRemarkEnabled ^ -XX:+CMSParallelRemarkEnabled ^
-XX:+ParallelRefProcEnabled -XX:+ParallelRefProcEnabled
REM Set the ZooKeeper connection string if using an external ZooKeeper ensemble REM Set the ZooKeeper connection string if using an external ZooKeeper ensemble
REM e.g. host1:2181,host2:2181/chroot REM e.g. host1:2181,host2:2181/chroot
REM Leave empty if not using SolrCloud REM Leave empty if not using SolrCloud
REM set ZK_HOST= REM set ZK_HOST=
REM Set the ZooKeeper client timeout (for SolrCloud mode) REM Set the ZooKeeper client timeout (for SolrCloud mode)
REM set ZK_CLIENT_TIMEOUT=15000 REM set ZK_CLIENT_TIMEOUT=15000
REM By default the start script uses "localhost"; override the hostname here REM By default the start script uses "localhost"; override the hostname here
REM for production SolrCloud environments to control the hostname exposed to cluster state REM for production SolrCloud environments to control the hostname exposed to cluster state
REM set SOLR_HOST=192.168.1.1 REM set SOLR_HOST=192.168.1.1
REM By default the start script uses UTC; override the timezone if needed REM By default the start script uses UTC; override the timezone if needed
REM set SOLR_TIMEZONE=UTC REM set SOLR_TIMEZONE=UTC
REM Set to true to activate the JMX RMI connector to allow remote JMX client applications REM Set to true to activate the JMX RMI connector to allow remote JMX client applications
REM to monitor the JVM hosting Solr; set to "false" to disable that behavior REM to monitor the JVM hosting Solr; set to "false" to disable that behavior
REM (false is recommended in production environments) REM (false is recommended in production environments)
set ENABLE_REMOTE_JMX_OPTS=false set ENABLE_REMOTE_JMX_OPTS=false
REM The script will use SOLR_PORT+10000 for the RMI_PORT or you can set it here REM The script will use SOLR_PORT+10000 for the RMI_PORT or you can set it here
REM set RMI_PORT=18983 REM set RMI_PORT=18983
REM Set the host interface to listen on. Jetty will listen on all interfaces (0.0.0.0) by default. REM Set the host interface to listen on. Jetty will listen on all interfaces (0.0.0.0) by default.
REM This must be an IPv4 ("a.b.c.d") or bracketed IPv6 ("[x::y]") address, not a hostname! REM This must be an IPv4 ("a.b.c.d") or bracketed IPv6 ("[x::y]") address, not a hostname!
set SOLR_JETTY_HOST=0.0.0.0 set SOLR_JETTY_HOST=0.0.0.0
set SOLR_OPTS=%SOLR_OPTS% -Djetty.host=%SOLR_JETTY_HOST% set SOLR_OPTS=%SOLR_OPTS% -Djetty.host=%SOLR_JETTY_HOST%
REM Set the thread stack size REM Set the thread stack size
set SOLR_OPTS=%SOLR_OPTS% -Xss256k set SOLR_OPTS=%SOLR_OPTS% -Xss256k
REM Anything you add to the SOLR_OPTS variable will be included in the java REM Anything you add to the SOLR_OPTS variable will be included in the java
REM start command line as-is, in ADDITION to other options. If you specify the REM start command line as-is, in ADDITION to other options. If you specify the
REM -a option on start script, those options will be appended as well. Examples: REM -a option on start script, those options will be appended as well. Examples:
REM set SOLR_OPTS=%SOLR_OPTS% -Dsolr.autoSoftCommit.maxTime=3000 REM set SOLR_OPTS=%SOLR_OPTS% -Dsolr.autoSoftCommit.maxTime=3000
REM set SOLR_OPTS=%SOLR_OPTS% -Dsolr.autoCommit.maxTime=60000 REM set SOLR_OPTS=%SOLR_OPTS% -Dsolr.autoCommit.maxTime=60000
REM set SOLR_OPTS=%SOLR_OPTS% -Dsolr.clustering.enabled=true REM set SOLR_OPTS=%SOLR_OPTS% -Dsolr.clustering.enabled=true
REM Path to a directory for Solr to store cores and their data. By default, Solr will use server\solr REM Path to a directory for Solr to store cores and their data. By default, Solr will use server\solr
REM If solr.xml is not stored in ZooKeeper, this directory needs to contain solr.xml REM If solr.xml is not stored in ZooKeeper, this directory needs to contain solr.xml
REM set SOLR_HOME= REM set SOLR_HOME=
REM Sets the port Solr binds to, default is 8983 REM Sets the port Solr binds to, default is 8983
REM set SOLR_PORT=8983 REM set SOLR_PORT=8983
REM Uncomment to set SSL-related system properties REM Uncomment to set SSL-related system properties
REM Be sure to update the paths to the correct keystore for your environment REM Be sure to update the paths to the correct keystore for your environment
REM set SOLR_SSL_KEY_STORE=etc/solr-ssl.keystore.jks REM set SOLR_SSL_KEY_STORE=etc/solr-ssl.keystore.jks
REM set SOLR_SSL_KEY_STORE_PASSWORD=secret REM set SOLR_SSL_KEY_STORE_PASSWORD=secret
REM set SOLR_SSL_TRUST_STORE=etc/solr-ssl.keystore.jks REM set SOLR_SSL_TRUST_STORE=etc/solr-ssl.keystore.jks
REM set SOLR_SSL_TRUST_STORE_PASSWORD=secret REM set SOLR_SSL_TRUST_STORE_PASSWORD=secret
REM set SOLR_SSL_NEED_CLIENT_AUTH=false REM set SOLR_SSL_NEED_CLIENT_AUTH=false
REM set SOLR_SSL_WANT_CLIENT_AUTH=false REM set SOLR_SSL_WANT_CLIENT_AUTH=false
REM Uncomment if you want to override previously defined SSL values for HTTP client REM Uncomment if you want to override previously defined SSL values for HTTP client
REM otherwise keep them commented and the above values will automatically be set for HTTP clients REM otherwise keep them commented and the above values will automatically be set for HTTP clients
REM set SOLR_SSL_CLIENT_KEY_STORE= REM set SOLR_SSL_CLIENT_KEY_STORE=
REM set SOLR_SSL_CLIENT_KEY_STORE_PASSWORD= REM set SOLR_SSL_CLIENT_KEY_STORE_PASSWORD=
REM set SOLR_SSL_CLIENT_TRUST_STORE= REM set SOLR_SSL_CLIENT_TRUST_STORE=
REM setSOLR_SSL_CLIENT_TRUST_STORE_PASSWORD= REM setSOLR_SSL_CLIENT_TRUST_STORE_PASSWORD=
REM Settings for ZK ACL REM Settings for ZK ACL
REM set SOLR_ZK_CREDS_AND_ACLS=-DzkACLProvider=org.apache.solr.common.cloud.VMParamsAllAndReadonlyDigestZkACLProvider ^ REM set SOLR_ZK_CREDS_AND_ACLS=-DzkACLProvider=org.apache.solr.common.cloud.VMParamsAllAndReadonlyDigestZkACLProvider ^
REM -DzkCredentialsProvider=org.apache.solr.common.cloud.VMParamsSingleSetCredentialsDigestZkCredentialsProvider ^ REM -DzkCredentialsProvider=org.apache.solr.common.cloud.VMParamsSingleSetCredentialsDigestZkCredentialsProvider ^
REM -DzkDigestUsername=admin-user -DzkDigestPassword=CHANGEME-ADMIN-PASSWORD ^ REM -DzkDigestUsername=admin-user -DzkDigestPassword=CHANGEME-ADMIN-PASSWORD ^
REM -DzkDigestReadonlyUsername=readonly-user -DzkDigestReadonlyPassword=CHANGEME-READONLY-PASSWORD REM -DzkDigestReadonlyUsername=readonly-user -DzkDigestReadonlyPassword=CHANGEME-READONLY-PASSWORD
REM set SOLR_OPTS=%SOLR_OPTS% %SOLR_ZK_CREDS_AND_ACLS% REM set SOLR_OPTS=%SOLR_OPTS% %SOLR_ZK_CREDS_AND_ACLS%

Some files were not shown because too many files have changed in this diff Show More