mirror of
https://github.com/ysoftdevs/DependencyCheck.git
synced 2026-03-19 07:44:23 +01:00
general updates
This commit is contained in:
59
pom.xml
59
pom.xml
@@ -29,6 +29,7 @@ along with DependencyCheck. If not, see <http://www.gnu.org/licenses/>.
|
|||||||
<name>DependencyCheck</name>
|
<name>DependencyCheck</name>
|
||||||
<url>https://github.com/jeremylong/DependencyCheck.git</url>
|
<url>https://github.com/jeremylong/DependencyCheck.git</url>
|
||||||
<description>DependencyCheck is a utility that attempts to detect publically disclosed vulnerabilities contained within project dependencies. It does this by determining if there is a Common Platform Enumeration (CPE) identifier for a given dependency. If found, it will generate a report linking to the associated CVE entries.</description>
|
<description>DependencyCheck is a utility that attempts to detect publically disclosed vulnerabilities contained within project dependencies. It does this by determining if there is a Common Platform Enumeration (CPE) identifier for a given dependency. If found, it will generate a report linking to the associated CVE entries.</description>
|
||||||
|
<inceptionYear>2012</inceptionYear>
|
||||||
<organization>
|
<organization>
|
||||||
<name>Jeremy Long</name>
|
<name>Jeremy Long</name>
|
||||||
</organization>
|
</organization>
|
||||||
@@ -49,6 +50,10 @@ along with DependencyCheck. If not, see <http://www.gnu.org/licenses/>.
|
|||||||
<url>https://github.com/jeremylong/DependencyCheck.git</url>
|
<url>https://github.com/jeremylong/DependencyCheck.git</url>
|
||||||
<developerConnection>scm:git:git@github.com:jeremylong/DependencyCheck.git</developerConnection>
|
<developerConnection>scm:git:git@github.com:jeremylong/DependencyCheck.git</developerConnection>
|
||||||
</scm>
|
</scm>
|
||||||
|
<issueManagement>
|
||||||
|
<system>github</system>
|
||||||
|
<url>https://github.com/jeremylong/DependencyCheck/issues</url>
|
||||||
|
</issueManagement>
|
||||||
<licenses>
|
<licenses>
|
||||||
<license>
|
<license>
|
||||||
<name>GNU General Public License version 3</name>
|
<name>GNU General Public License version 3</name>
|
||||||
@@ -200,10 +205,6 @@ along with DependencyCheck. If not, see <http://www.gnu.org/licenses/>.
|
|||||||
<name>cve</name>
|
<name>cve</name>
|
||||||
<value>${project.build.directory}/store/cve</value>
|
<value>${project.build.directory}/store/cve</value>
|
||||||
</property>
|
</property>
|
||||||
<property>
|
|
||||||
<name>osvdb</name>
|
|
||||||
<value>${project.build.directory}/store/osvdb</value>
|
|
||||||
</property>
|
|
||||||
<property>
|
<property>
|
||||||
<name>cpe</name>
|
<name>cpe</name>
|
||||||
<value>${project.build.directory}/store/cpe</value>
|
<value>${project.build.directory}/store/cpe</value>
|
||||||
@@ -220,7 +221,36 @@ along with DependencyCheck. If not, see <http://www.gnu.org/licenses/>.
|
|||||||
<plugin>
|
<plugin>
|
||||||
<groupId>org.apache.maven.plugins</groupId>
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
<artifactId>maven-project-info-reports-plugin</artifactId>
|
<artifactId>maven-project-info-reports-plugin</artifactId>
|
||||||
<version>2.2</version>
|
<version>2.5.1</version>
|
||||||
|
<reportSets>
|
||||||
|
<reportSet>
|
||||||
|
<reports>
|
||||||
|
<!--<report>mailing-list</report>-->
|
||||||
|
<!--<report>cim</report>-->
|
||||||
|
<report>index</report>
|
||||||
|
<report>summary</report>
|
||||||
|
<report>license</report>
|
||||||
|
<report>scm</report>
|
||||||
|
<report>issue-tracking</report>
|
||||||
|
<report>dependencies</report>
|
||||||
|
<report>plugin-management</report>
|
||||||
|
<report>project-team</report>
|
||||||
|
</reports>
|
||||||
|
</reportSet>
|
||||||
|
</reportSets>
|
||||||
|
</plugin>
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.codehaus.mojo</groupId>
|
||||||
|
<artifactId>versions-maven-plugin</artifactId>
|
||||||
|
<version>1.3.1</version>
|
||||||
|
<reportSets>
|
||||||
|
<reportSet>
|
||||||
|
<reports>
|
||||||
|
<report>dependency-updates-report</report>
|
||||||
|
<report>plugin-updates-report</report>
|
||||||
|
</reports>
|
||||||
|
</reportSet>
|
||||||
|
</reportSets>
|
||||||
</plugin>
|
</plugin>
|
||||||
<plugin>
|
<plugin>
|
||||||
<groupId>org.apache.maven.plugins</groupId>
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
@@ -328,25 +358,6 @@ along with DependencyCheck. If not, see <http://www.gnu.org/licenses/>.
|
|||||||
<classifier>javadoc</classifier>
|
<classifier>javadoc</classifier>
|
||||||
<scope>provided</scope>
|
<scope>provided</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
|
||||||
<groupId>commons-lang</groupId>
|
|
||||||
<artifactId>commons-lang</artifactId>
|
|
||||||
<version>2.6</version>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<groupId>commons-lang</groupId>
|
|
||||||
<artifactId>commons-lang</artifactId>
|
|
||||||
<version>2.6</version>
|
|
||||||
<classifier>javadoc</classifier>
|
|
||||||
<scope>provided</scope>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<groupId>commons-lang</groupId>
|
|
||||||
<artifactId>commons-lang</artifactId>
|
|
||||||
<version>2.6</version>
|
|
||||||
<classifier>sources</classifier>
|
|
||||||
<scope>provided</scope>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.apache.commons</groupId>
|
<groupId>org.apache.commons</groupId>
|
||||||
<artifactId>commons-io</artifactId>
|
<artifactId>commons-io</artifactId>
|
||||||
|
|||||||
@@ -67,7 +67,7 @@ public final class LuceneUtils {
|
|||||||
case '*':
|
case '*':
|
||||||
case '?':
|
case '?':
|
||||||
case ':':
|
case ':':
|
||||||
case '\\':
|
case '\\': //it is supposed to fall through here
|
||||||
buf.append('\\');
|
buf.append('\\');
|
||||||
default:
|
default:
|
||||||
buf.append(c);
|
buf.append(c);
|
||||||
|
|||||||
@@ -381,7 +381,12 @@ public class CPEQuery {
|
|||||||
sb.append("^0.2 ");
|
sb.append("^0.2 ");
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
LuceneUtils.appendEscapedLuceneQuery(sb, version);
|
//LuceneUtils.appendEscapedLuceneQuery(sb, version);
|
||||||
|
//if we have a weighting on something else, reduce the weighting on the version a lot
|
||||||
|
for (String v : version.split(" ")) {
|
||||||
|
LuceneUtils.appendEscapedLuceneQuery(sb, v);
|
||||||
|
sb.append("^0.7 ");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
sb.append(")");
|
sb.append(")");
|
||||||
|
|
||||||
|
|||||||
@@ -27,6 +27,8 @@ import java.io.InputStreamReader;
|
|||||||
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 java.util.logging.Logger;
|
||||||
import org.apache.velocity.app.VelocityEngine;
|
import org.apache.velocity.app.VelocityEngine;
|
||||||
import org.apache.velocity.context.Context;
|
import org.apache.velocity.context.Context;
|
||||||
import org.apache.velocity.runtime.RuntimeConstants;
|
import org.apache.velocity.runtime.RuntimeConstants;
|
||||||
@@ -82,9 +84,7 @@ public class ReportGenerator {
|
|||||||
Context context = manager.createContext();
|
Context context = manager.createContext();
|
||||||
EasyFactoryConfiguration config = new EasyFactoryConfiguration();
|
EasyFactoryConfiguration config = new EasyFactoryConfiguration();
|
||||||
config.addDefaultTools();
|
config.addDefaultTools();
|
||||||
config.toolbox("application")
|
config.toolbox("application").tool("esc", "org.apache.velocity.tools.generic.EscapeTool").tool("org.apache.velocity.tools.generic.DateTool");
|
||||||
.tool("esc", "org.apache.velocity.tools.generic.EscapeTool")
|
|
||||||
.tool("org.apache.velocity.tools.generic.DateTool");
|
|
||||||
|
|
||||||
manager.configure(config);
|
manager.configure(config);
|
||||||
|
|
||||||
@@ -119,12 +119,12 @@ public class ReportGenerator {
|
|||||||
try {
|
try {
|
||||||
writer.close();
|
writer.close();
|
||||||
} catch (Exception ex) {
|
} catch (Exception ex) {
|
||||||
//ignore this error.
|
Logger.getLogger(ReportGenerator.class.getName()).log(Level.FINEST, null, ex);
|
||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
reader.close();
|
reader.close();
|
||||||
} catch (Exception ex) {
|
} catch (Exception ex) {
|
||||||
//ignore this error.
|
Logger.getLogger(ReportGenerator.class.getName()).log(Level.FINEST, null, ex);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -145,26 +145,26 @@ public final class CliParser {
|
|||||||
@SuppressWarnings("static-access")
|
@SuppressWarnings("static-access")
|
||||||
private Options createCommandLineOptions() {
|
private Options createCommandLineOptions() {
|
||||||
Option help = new Option(ArgumentName.HELP_SHORT, ArgumentName.HELP, false,
|
Option help = new Option(ArgumentName.HELP_SHORT, ArgumentName.HELP, false,
|
||||||
"print this message");
|
"print this message.");
|
||||||
|
|
||||||
|
Option advancedHelp = new Option(ArgumentName.ADVANCED_HELP_SHORT, ArgumentName.ADVANCED_HELP, false,
|
||||||
|
"shows additional help regarding properties file.");
|
||||||
|
|
||||||
Option version = new Option(ArgumentName.VERSION_SHORT, ArgumentName.VERSION,
|
Option version = new Option(ArgumentName.VERSION_SHORT, ArgumentName.VERSION,
|
||||||
false, "print the version information and exit");
|
false, "print the version information.");
|
||||||
|
|
||||||
Option noupdate = new Option(ArgumentName.DISABLE_AUTO_UPDATE_SHORT, ArgumentName.DISABLE_AUTO_UPDATE,
|
Option noupdate = new Option(ArgumentName.DISABLE_AUTO_UPDATE_SHORT, ArgumentName.DISABLE_AUTO_UPDATE,
|
||||||
false, "disables the automatic updating of the CPE data.");
|
false, "disables the automatic updating of the CPE data.");
|
||||||
|
|
||||||
Option appname = OptionBuilder.withArgName("name").hasArg().withLongOpt(ArgumentName.APPNAME)
|
Option appname = OptionBuilder.withArgName("name").hasArg().withLongOpt(ArgumentName.APPNAME).withDescription("the name of the application being scanned.").create(ArgumentName.APPNAME_SHORT);
|
||||||
.withDescription("the name of the application being scanned").create(ArgumentName.APPNAME_SHORT);
|
|
||||||
|
|
||||||
Option path = OptionBuilder.withArgName("path").hasArg().withLongOpt(ArgumentName.SCAN)
|
Option path = OptionBuilder.withArgName("path").hasArg().withLongOpt(ArgumentName.SCAN).withDescription("the path to scan - this option can be specified multiple times.").create(ArgumentName.SCAN_SHORT);
|
||||||
.withDescription("the path to scan - this option can be specified multiple times.")
|
|
||||||
.create(ArgumentName.SCAN_SHORT);
|
|
||||||
|
|
||||||
Option load = OptionBuilder.withArgName("file").hasArg().withLongOpt(ArgumentName.CPE)
|
Option load = OptionBuilder.withArgName("file").hasArg().withLongOpt(ArgumentName.CPE).withDescription("load the CPE xml file.").create(ArgumentName.CPE_SHORT);
|
||||||
.withDescription("load the CPE xml file").create(ArgumentName.CPE_SHORT);
|
|
||||||
|
|
||||||
Option out = OptionBuilder.withArgName("folder").hasArg().withLongOpt(ArgumentName.OUT)
|
Option props = OptionBuilder.withArgName("file").hasArg().withLongOpt(ArgumentName.PROP).withDescription("a property file to load.").create(ArgumentName.PROP_SHORT);
|
||||||
.withDescription("the folder to write reports to.").create(ArgumentName.OUT_SHORT);
|
|
||||||
|
Option out = OptionBuilder.withArgName("folder").hasArg().withLongOpt(ArgumentName.OUT).withDescription("the folder to write reports to.").create(ArgumentName.OUT_SHORT);
|
||||||
|
|
||||||
//TODO add the ability to load a properties file to override the defaults...
|
//TODO add the ability to load a properties file to override the defaults...
|
||||||
|
|
||||||
@@ -179,7 +179,8 @@ public final class CliParser {
|
|||||||
opts.addOption(version);
|
opts.addOption(version);
|
||||||
opts.addOption(help);
|
opts.addOption(help);
|
||||||
opts.addOption(noupdate);
|
opts.addOption(noupdate);
|
||||||
|
opts.addOption(props);
|
||||||
|
opts.addOption(advancedHelp);
|
||||||
return opts;
|
return opts;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -224,12 +225,28 @@ public final class CliParser {
|
|||||||
*/
|
*/
|
||||||
public void printHelp() {
|
public void printHelp() {
|
||||||
HelpFormatter formatter = new HelpFormatter();
|
HelpFormatter formatter = new HelpFormatter();
|
||||||
|
String nl = System.getProperty("line.separator");
|
||||||
|
String advancedHelp = null;
|
||||||
|
if (line.hasOption(ArgumentName.ADVANCED_HELP)) {
|
||||||
|
advancedHelp = nl + nl
|
||||||
|
+ "Additionally, the following properties are supported and can be specified either"
|
||||||
|
+ "using the -p <file> argument or by passing them in as system properties." + nl
|
||||||
|
+ nl + " " + Settings.KEYS.PROXY_URL + "\t\t the proxy URL to use when downloading resources."
|
||||||
|
+ nl + " " + Settings.KEYS.PROXY_PORT + "\t\t the proxy port to use when downloading resources."
|
||||||
|
+ nl + " " + Settings.KEYS.CONNECTION_TIMEOUT + "\t the cconnection timeout (in milliseconds) to use" + nl + "\t\t\t when downloading resources.";
|
||||||
|
}
|
||||||
|
|
||||||
formatter.printHelp(Settings.getString("application.name", "DependencyCheck"),
|
formatter.printHelp(Settings.getString("application.name", "DependencyCheck"),
|
||||||
"\n" + Settings.getString("application.name", "DependencyCheck")
|
nl + Settings.getString("application.name", "DependencyCheck")
|
||||||
+ " can be used to identify if there are any known CVE vulnerabilities in libraries utillized by an application. "
|
+ " can be used to identify if there are any known CVE vulnerabilities in libraries utillized by an application. "
|
||||||
+ Settings.getString("application.name", "DependencyCheck")
|
+ Settings.getString("application.name", "DependencyCheck")
|
||||||
+ " will automatically update required data from the Internet, such as the CVE and CPE data files from nvd.nist.gov.\n",
|
+ " will automatically update required data from the Internet, such as the CVE and CPE data files from nvd.nist.gov." + nl + nl,
|
||||||
options, "", true);
|
options,
|
||||||
|
"",
|
||||||
|
true);
|
||||||
|
if (advancedHelp != null) {
|
||||||
|
System.out.println(advancedHelp);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -351,5 +368,21 @@ public final class CliParser {
|
|||||||
* The short CLI argument name asking for the version.
|
* The short CLI argument name asking for the version.
|
||||||
*/
|
*/
|
||||||
public static final String VERSION = "version";
|
public static final String VERSION = "version";
|
||||||
|
/**
|
||||||
|
* The CLI argument name asking for advanced help.
|
||||||
|
*/
|
||||||
|
public static final String ADVANCED_HELP_SHORT = "ah";
|
||||||
|
/**
|
||||||
|
* The short CLI argument name asking for advanced help.
|
||||||
|
*/
|
||||||
|
public static final String ADVANCED_HELP = "advancedhelp";
|
||||||
|
/**
|
||||||
|
* The short CLI argument name for setting the location of an additional properties file.
|
||||||
|
*/
|
||||||
|
public static final String PROP_SHORT = "p";
|
||||||
|
/**
|
||||||
|
* The CLI argument name for setting the location of an additional properties file.
|
||||||
|
*/
|
||||||
|
public static final String PROP = "propertyfile";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -18,6 +18,8 @@ package org.codesecure.dependencycheck.utils;
|
|||||||
* Copyright (c) 2012 Jeremy Long. All Rights Reserved.
|
* Copyright (c) 2012 Jeremy Long. All Rights Reserved.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
import java.io.FileInputStream;
|
||||||
|
import java.io.FileNotFoundException;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
import java.util.Properties;
|
import java.util.Properties;
|
||||||
@@ -52,10 +54,6 @@ public class Settings {
|
|||||||
* The properties key for the path where the CCE Lucene Index will be stored.
|
* The properties key for the path where the CCE Lucene Index will be stored.
|
||||||
*/
|
*/
|
||||||
public static final String CVE_INDEX = "cve";
|
public static final String CVE_INDEX = "cve";
|
||||||
/**
|
|
||||||
* The properties key for the path where the OSVDB Lucene Index will be stored.
|
|
||||||
*/
|
|
||||||
public static final String OSVDB_INDEX = "osvdb";
|
|
||||||
/**
|
/**
|
||||||
* The properties key for the proxy url.
|
* The properties key for the proxy url.
|
||||||
*/
|
*/
|
||||||
@@ -86,6 +84,44 @@ public class Settings {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets a property value.
|
||||||
|
* @param key the key for the property.
|
||||||
|
* @param value the value for the property.
|
||||||
|
*/
|
||||||
|
public static void setString(String key, String value) {
|
||||||
|
INSTANCE.props.setProperty(key, value);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Merges a new properties file into the current properties. This
|
||||||
|
* method allows for the loading of a user provided properties file.<br/><br/>
|
||||||
|
* Note: even if using this method - system properties will be loaded before
|
||||||
|
* properties loaded from files.
|
||||||
|
*
|
||||||
|
* @param filePath the path to the properties file to merge.
|
||||||
|
* @throws FileNotFoundException is thrown when the filePath points to a non-existent file.
|
||||||
|
* @throws IOException is thrown when there is an exception loading/merging the properties.
|
||||||
|
*/
|
||||||
|
public static void mergeProperties(String filePath) throws FileNotFoundException, IOException {
|
||||||
|
FileInputStream fis = new FileInputStream(filePath);
|
||||||
|
mergeProperties(fis);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Merges a new properties file into the current properties. This
|
||||||
|
* method allows for the loading of a user provided properties file.<br/><br/>
|
||||||
|
* Note: even if using this method - system properties will be loaded before
|
||||||
|
* properties loaded from files.
|
||||||
|
*
|
||||||
|
* @param stream an Input Stream pointing at a properties file to merge.
|
||||||
|
* @throws IOException is thrown when there is an exception loading/merging the properties
|
||||||
|
*/
|
||||||
|
public static void mergeProperties(InputStream stream) throws IOException {
|
||||||
|
INSTANCE.props.load(stream);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns a value from the properties file. If the value was specified as a
|
* Returns a value from the properties file. If the value was specified as a
|
||||||
* system property or passed in via the -Dprop=value argument - this method
|
* system property or passed in via the -Dprop=value argument - this method
|
||||||
@@ -104,15 +140,6 @@ public class Settings {
|
|||||||
return str;
|
return str;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Sets a property value.
|
|
||||||
* @param key the key for the property.
|
|
||||||
* @param value the value for the property.
|
|
||||||
*/
|
|
||||||
public static void setString(String key, String value) {
|
|
||||||
INSTANCE.props.setProperty(key, value);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns a value from the properties file. If the value was specified as a
|
* Returns a value from the properties file. If the value was specified as a
|
||||||
* system property or passed in via the -Dprop=value argument - this method
|
* system property or passed in via the -Dprop=value argument - this method
|
||||||
@@ -127,7 +154,7 @@ public class Settings {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns a integer value from the properties file. If the value was specified as a
|
* Returns an int value from the properties file. If the value was specified as a
|
||||||
* system property or passed in via the -Dprop=value argument - this method
|
* system property or passed in via the -Dprop=value argument - this method
|
||||||
* will return the value from the system properties before the values in
|
* will return the value from the system properties before the values in
|
||||||
* the contained configuration file.
|
* the contained configuration file.
|
||||||
@@ -138,6 +165,18 @@ public class Settings {
|
|||||||
public static int getInt(String key) {
|
public static int getInt(String key) {
|
||||||
return Integer.parseInt(Settings.getString(key));
|
return Integer.parseInt(Settings.getString(key));
|
||||||
}
|
}
|
||||||
|
/**
|
||||||
|
* Returns a long value from the properties file. If the value was specified as a
|
||||||
|
* system property or passed in via the -Dprop=value argument - this method
|
||||||
|
* will return the value from the system properties before the values in
|
||||||
|
* the contained configuration file.
|
||||||
|
*
|
||||||
|
* @param key the key to lookup within the properties file.
|
||||||
|
* @return the property from the properties file.
|
||||||
|
*/
|
||||||
|
public static long getLong(String key) {
|
||||||
|
return Long.parseLong(Settings.getString(key));
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns a boolean value from the properties file. If the value was specified as a
|
* Returns a boolean value from the properties file. If the value was specified as a
|
||||||
|
|||||||
@@ -5,5 +5,3 @@ cpe=store/cpe
|
|||||||
cpe.url=http://static.nvd.nist.gov/feeds/xml/cpe/dictionary/official-cpe-dictionary_v2.2.xml.gz
|
cpe.url=http://static.nvd.nist.gov/feeds/xml/cpe/dictionary/official-cpe-dictionary_v2.2.xml.gz
|
||||||
cpe.meta.url=http://static.nvd.nist.gov/feeds/xml/cpe/dictionary/official-cpe-dictionary_v2.2.meta
|
cpe.meta.url=http://static.nvd.nist.gov/feeds/xml/cpe/dictionary/official-cpe-dictionary_v2.2.meta
|
||||||
cve=store/cve
|
cve=store/cve
|
||||||
osvdb=store/osvdb
|
|
||||||
|
|
||||||
|
|||||||
@@ -48,7 +48,17 @@ public class LuceneUtilsTest {
|
|||||||
LuceneUtils.appendEscapedLuceneQuery(buf, text);
|
LuceneUtils.appendEscapedLuceneQuery(buf, text);
|
||||||
assertEquals(expResult, buf.toString());
|
assertEquals(expResult, buf.toString());
|
||||||
}
|
}
|
||||||
|
/**
|
||||||
|
* Test of appendEscapedLuceneQuery method, of class LuceneUtils.
|
||||||
|
*/
|
||||||
|
@Test
|
||||||
|
public void testAppendEscapedLuceneQuery_null() {
|
||||||
|
System.out.println("appendEscapedLuceneQuery");
|
||||||
|
StringBuilder buf = new StringBuilder();
|
||||||
|
CharSequence text = null;
|
||||||
|
LuceneUtils.appendEscapedLuceneQuery(buf, text);
|
||||||
|
assertEquals(0, buf.length());
|
||||||
|
}
|
||||||
/**
|
/**
|
||||||
* Test of escapeLuceneQuery method, of class LuceneUtils.
|
* Test of escapeLuceneQuery method, of class LuceneUtils.
|
||||||
*/
|
*/
|
||||||
@@ -60,4 +70,16 @@ public class LuceneUtilsTest {
|
|||||||
String result = LuceneUtils.escapeLuceneQuery(text);
|
String result = LuceneUtils.escapeLuceneQuery(text);
|
||||||
assertEquals(expResult, result);
|
assertEquals(expResult, result);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Test of escapeLuceneQuery method, of class LuceneUtils.
|
||||||
|
*/
|
||||||
|
@Test
|
||||||
|
public void testEscapeLuceneQuery_null() {
|
||||||
|
System.out.println("escapeLuceneQuery");
|
||||||
|
CharSequence text = null;
|
||||||
|
String expResult = null;
|
||||||
|
String result = LuceneUtils.escapeLuceneQuery(text);
|
||||||
|
assertEquals(expResult, result);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -95,7 +95,7 @@ public class CPEQueryTest extends BaseIndexTestCase {
|
|||||||
CPEQuery instance = new CPEQuery();
|
CPEQuery instance = new CPEQuery();
|
||||||
|
|
||||||
String queryText = instance.buildSearch(vendor, product, version, null, null);
|
String queryText = instance.buildSearch(vendor, product, version, null, null);
|
||||||
String expResult = " product:( struts 2 core ) vendor:( apache software foundation ) version:(2.1.2)";
|
String expResult = " product:( struts 2 core ) vendor:( apache software foundation ) version:(2.1.2^0.7 )";
|
||||||
assertTrue(expResult.equals(queryText));
|
assertTrue(expResult.equals(queryText));
|
||||||
|
|
||||||
queryText = instance.buildSearch(vendor, product, version, null, productWeightings);
|
queryText = instance.buildSearch(vendor, product, version, null, productWeightings);
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
* To change this template, choose Tools | Templates
|
* To change this template, choose Tools | Templates
|
||||||
* and open the template in the editor.
|
* and open the template in the editor.
|
||||||
*/
|
*/
|
||||||
package org.codesecure.dependencycheck.cpe.xml;
|
package org.codesecure.dependencycheck.data.cpe.xml;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import junit.framework.TestCase;
|
import junit.framework.TestCase;
|
||||||
@@ -331,6 +331,11 @@ public class CliParserTest extends TestCase {
|
|||||||
System.setOut(new PrintStream(baos));
|
System.setOut(new PrintStream(baos));
|
||||||
|
|
||||||
CliParser instance = new CliParser();
|
CliParser instance = new CliParser();
|
||||||
|
String[] args = {"-h"};
|
||||||
|
instance.parse(args);
|
||||||
|
instance.printHelp();
|
||||||
|
args[0] = "-ah";
|
||||||
|
instance.parse(args);
|
||||||
instance.printHelp();
|
instance.printHelp();
|
||||||
try {
|
try {
|
||||||
baos.flush();
|
baos.flush();
|
||||||
|
|||||||
@@ -4,6 +4,10 @@
|
|||||||
*/
|
*/
|
||||||
package org.codesecure.dependencycheck.utils;
|
package org.codesecure.dependencycheck.utils;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.io.InputStream;
|
||||||
|
import java.net.URISyntaxException;
|
||||||
import junit.framework.TestCase;
|
import junit.framework.TestCase;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
|
||||||
@@ -38,4 +42,97 @@ public class SettingsTest extends TestCase {
|
|||||||
String result = Settings.getString(key);
|
String result = Settings.getString(key);
|
||||||
assertTrue(result.endsWith(expResult));
|
assertTrue(result.endsWith(expResult));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Test of mergeProperties method, of class Settings.
|
||||||
|
*/
|
||||||
|
@Test
|
||||||
|
public void testMergeProperties_String() throws IOException, URISyntaxException {
|
||||||
|
System.out.println("getString");
|
||||||
|
String key = Settings.KEYS.PROXY_PORT;
|
||||||
|
String expResult = Settings.getString(key);
|
||||||
|
File f = new File(this.getClass().getClassLoader().getResource("test.properties").toURI());
|
||||||
|
//InputStream in = this.getClass().getClassLoader().getResourceAsStream("test.properties");
|
||||||
|
Settings.mergeProperties(f.getAbsolutePath());
|
||||||
|
String result = Settings.getString(key);
|
||||||
|
assertTrue("setting didn't change?", (expResult == null && result != null) || !expResult.equals(result));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Test of setString method, of class Settings.
|
||||||
|
*/
|
||||||
|
@Test
|
||||||
|
public void testSetString() {
|
||||||
|
System.out.println("setString");
|
||||||
|
String key = "newProperty";
|
||||||
|
String value = "someValue";
|
||||||
|
Settings.setString(key, value);
|
||||||
|
String expResults = Settings.getString(key);
|
||||||
|
assertEquals(expResults, value);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Test of getString method, of class Settings.
|
||||||
|
*/
|
||||||
|
@Test
|
||||||
|
public void testGetString_String_String() {
|
||||||
|
System.out.println("getString");
|
||||||
|
String key = "key That Doesn't Exist";
|
||||||
|
String defaultValue = "blue bunny";
|
||||||
|
String expResult = "blue bunny";
|
||||||
|
String result = Settings.getString(key);
|
||||||
|
assertTrue(result == null);
|
||||||
|
result = Settings.getString(key, defaultValue);
|
||||||
|
assertEquals(expResult, result);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Test of getString method, of class Settings.
|
||||||
|
*/
|
||||||
|
@Test
|
||||||
|
public void testGetString_String() {
|
||||||
|
System.out.println("getString");
|
||||||
|
String key = Settings.KEYS.CONNECTION_TIMEOUT;
|
||||||
|
String result = Settings.getString(key);
|
||||||
|
assertTrue(result == null);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Test of getInt method, of class Settings.
|
||||||
|
*/
|
||||||
|
@Test
|
||||||
|
public void testGetInt() {
|
||||||
|
System.out.println("getInt");
|
||||||
|
String key = "SomeNumber";
|
||||||
|
int expResult = 85;
|
||||||
|
Settings.setString(key, "85");
|
||||||
|
int result = Settings.getInt(key);
|
||||||
|
assertEquals(expResult, result);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Test of getLong method, of class Settings.
|
||||||
|
*/
|
||||||
|
@Test
|
||||||
|
public void testGetLong() {
|
||||||
|
System.out.println("getLong");
|
||||||
|
String key = "SomeNumber";
|
||||||
|
long expResult = 300L;
|
||||||
|
Settings.setString(key, "300");
|
||||||
|
long result = Settings.getLong(key);
|
||||||
|
assertEquals(expResult, result);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Test of getBoolean method, of class Settings.
|
||||||
|
*/
|
||||||
|
@Test
|
||||||
|
public void testGetBoolean() {
|
||||||
|
System.out.println("getBoolean");
|
||||||
|
String key = "SomeBoolean";
|
||||||
|
Settings.setString(key, "false");
|
||||||
|
boolean expResult = false;
|
||||||
|
boolean result = Settings.getBoolean(key);
|
||||||
|
assertEquals(expResult, result);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,47 +0,0 @@
|
|||||||
/*
|
|
||||||
* To change this template, choose Tools | Templates
|
|
||||||
* and open the template in the editor.
|
|
||||||
*/
|
|
||||||
package org.codesecure.dependencycheck.cpe.xml;
|
|
||||||
|
|
||||||
import org.codesecure.dependencycheck.data.cpe.Entry;
|
|
||||||
import junit.framework.TestCase;
|
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
* @author Jeremy Long
|
|
||||||
*/
|
|
||||||
public class CPEEntryTest extends TestCase {
|
|
||||||
|
|
||||||
public CPEEntryTest(String testName) {
|
|
||||||
super(testName);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void setUp() throws Exception {
|
|
||||||
super.setUp();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void tearDown() throws Exception {
|
|
||||||
super.tearDown();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Test of setName method, of class Entry.
|
|
||||||
*/
|
|
||||||
public void testSetName() throws Exception {
|
|
||||||
System.out.println("setName");
|
|
||||||
String name = "cpe:/a:apache:struts:1.1:rc2";
|
|
||||||
|
|
||||||
Entry instance = new Entry();
|
|
||||||
instance.setName(name);
|
|
||||||
|
|
||||||
assertEquals(name,instance.getName());
|
|
||||||
assertEquals("apache", instance.getVendor());
|
|
||||||
assertEquals("struts", instance.getProduct());
|
|
||||||
assertEquals("1.1", instance.getVersion());
|
|
||||||
assertEquals("rc2", instance.getRevision());
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
1
src/test/resources/test.properties
Normal file
1
src/test/resources/test.properties
Normal file
@@ -0,0 +1 @@
|
|||||||
|
proxy.port=80
|
||||||
Reference in New Issue
Block a user