checkstyle fixes

Former-commit-id: c5488d61958f91a8f47f4df4b2206f0193eed8dd
This commit is contained in:
Jeremy Long
2013-11-30 10:00:22 -05:00
parent dc02757bc3
commit e2c78e546d
5 changed files with 70 additions and 25 deletions

View File

@@ -80,7 +80,7 @@ public class PropertyType {
/** /**
* Indicates case sensitivity. * Indicates case sensitivity.
*/ */
protected boolean caseSensitive = false; private boolean caseSensitive = false;
/** /**
* Gets the value of the caseSensitive property. * Gets the value of the caseSensitive property.

View File

@@ -1,6 +1,20 @@
/* /*
* To change this template, choose Tools | Templates * This file is part of dependency-check-core.
* and open the template in the editor. *
* Dependency-check-core is free software: you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the Free
* Software Foundation, either version 3 of the License, or (at your option) any
* later version.
*
* Dependency-check-core is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
* details.
*
* You should have received a copy of the GNU General Public License along with
* dependency-check-core. If not, see http://www.gnu.org/licenses/.
*
* Copyright (c) 2013 Jeremy Long. All Rights Reserved.
*/ */
package org.owasp.dependencycheck.suppression; package org.owasp.dependencycheck.suppression;

View File

@@ -65,7 +65,7 @@ public class SuppressionHandler extends DefaultHandler {
private List<SuppressionRule> supressionRules = new ArrayList<SuppressionRule>(); private List<SuppressionRule> supressionRules = new ArrayList<SuppressionRule>();
/** /**
* Get the value of supressionRules * Get the value of supressionRules.
* *
* @return the value of supressionRules * @return the value of supressionRules
*/ */
@@ -120,19 +120,19 @@ public class SuppressionHandler extends DefaultHandler {
supressionRules.add(rule); supressionRules.add(rule);
rule = null; rule = null;
} else if (FILE_PATH.equals(qName)) { } else if (FILE_PATH.equals(qName)) {
PropertyType pt = processPropertyType(); final PropertyType pt = processPropertyType();
rule.setFilePath(pt); rule.setFilePath(pt);
} else if (SHA1.equals(qName)) { } else if (SHA1.equals(qName)) {
rule.setSha1(currentText.toString()); rule.setSha1(currentText.toString());
} else if (CPE.equals(qName)) { } else if (CPE.equals(qName)) {
PropertyType pt = processPropertyType(); final PropertyType pt = processPropertyType();
rule.addCpe(pt); rule.addCpe(pt);
} else if (CWE.equals(qName)) { } else if (CWE.equals(qName)) {
rule.addCwe(currentText.toString()); rule.addCwe(currentText.toString());
} else if (CVE.equals(qName)) { } else if (CVE.equals(qName)) {
rule.addCve(currentText.toString()); rule.addCve(currentText.toString());
} else if (CVSS_BELOW.equals(qName)) { } else if (CVSS_BELOW.equals(qName)) {
float cvss = Float.parseFloat(currentText.toString()); final float cvss = Float.parseFloat(currentText.toString());
} }
} }
@@ -156,7 +156,7 @@ public class SuppressionHandler extends DefaultHandler {
* @return a PropertyType object * @return a PropertyType object
*/ */
private PropertyType processPropertyType() { private PropertyType processPropertyType() {
PropertyType pt = new PropertyType(); final PropertyType pt = new PropertyType();
pt.setValue(currentText.toString()); pt.setValue(currentText.toString());
if (currentAttributes != null && currentAttributes.getLength() > 0) { if (currentAttributes != null && currentAttributes.getLength() > 0) {
final String regex = currentAttributes.getValue("regex"); final String regex = currentAttributes.getValue("regex");

View File

@@ -43,17 +43,17 @@ import org.xml.sax.XMLReader;
public class SuppressionParser { public class SuppressionParser {
/** /**
* JAXP Schema Language, source: * JAXP Schema Language. Source:
* http://docs.oracle.com/javase/tutorial/jaxp/sax/validation.html * http://docs.oracle.com/javase/tutorial/jaxp/sax/validation.html
*/ */
public static final String JAXP_SCHEMA_LANGUAGE = "http://java.sun.com/xml/jaxp/properties/schemaLanguage"; public static final String JAXP_SCHEMA_LANGUAGE = "http://java.sun.com/xml/jaxp/properties/schemaLanguage";
/** /**
* W3C XML Schema, source: * W3C XML Schema. Source:
* http://docs.oracle.com/javase/tutorial/jaxp/sax/validation.html * http://docs.oracle.com/javase/tutorial/jaxp/sax/validation.html
*/ */
public static final String W3C_XML_SCHEMA = "http://www.w3.org/2001/XMLSchema"; public static final String W3C_XML_SCHEMA = "http://www.w3.org/2001/XMLSchema";
/** /**
* JAXP Schema Source, source: * JAXP Schema Source. Source:
* http://docs.oracle.com/javase/tutorial/jaxp/sax/validation.html * http://docs.oracle.com/javase/tutorial/jaxp/sax/validation.html
*/ */
public static final String JAXP_SCHEMA_SOURCE = "http://java.sun.com/xml/jaxp/properties/schemaSource"; public static final String JAXP_SCHEMA_SOURCE = "http://java.sun.com/xml/jaxp/properties/schemaSource";
@@ -68,22 +68,22 @@ public class SuppressionParser {
*/ */
public List<SuppressionRule> parseSuppressionRules(File file) throws SuppressionParseException { public List<SuppressionRule> parseSuppressionRules(File file) throws SuppressionParseException {
try { try {
File schema = new File(this.getClass().getClassLoader().getResource("schema/suppression.xsd").getPath()); final File schema = new File(this.getClass().getClassLoader().getResource("schema/suppression.xsd").getPath());
SuppressionHandler handler = new SuppressionHandler(); final SuppressionHandler handler = new SuppressionHandler();
SAXParserFactory factory = SAXParserFactory.newInstance(); final SAXParserFactory factory = SAXParserFactory.newInstance();
factory.setNamespaceAware(true); factory.setNamespaceAware(true);
factory.setValidating(true); factory.setValidating(true);
SAXParser saxParser = factory.newSAXParser(); final SAXParser saxParser = factory.newSAXParser();
saxParser.setProperty(SuppressionParser.JAXP_SCHEMA_LANGUAGE, SuppressionParser.W3C_XML_SCHEMA); saxParser.setProperty(SuppressionParser.JAXP_SCHEMA_LANGUAGE, SuppressionParser.W3C_XML_SCHEMA);
saxParser.setProperty(SuppressionParser.JAXP_SCHEMA_SOURCE, schema); saxParser.setProperty(SuppressionParser.JAXP_SCHEMA_SOURCE, schema);
XMLReader xmlReader = saxParser.getXMLReader(); final XMLReader xmlReader = saxParser.getXMLReader();
xmlReader.setErrorHandler(new SuppressionErrorHandler()); xmlReader.setErrorHandler(new SuppressionErrorHandler());
xmlReader.setContentHandler(handler); xmlReader.setContentHandler(handler);
InputStream inputStream = new FileInputStream(file); final InputStream inputStream = new FileInputStream(file);
Reader reader = new InputStreamReader(inputStream); //, "UTF-8"); final Reader reader = new InputStreamReader(inputStream); //, "UTF-8");
InputSource in = new InputSource(reader); final InputSource in = new InputSource(reader);
//in.setEncoding("UTF-8"); //in.setEncoding("UTF-8");
xmlReader.parse(in); xmlReader.parse(in);

View File

@@ -121,7 +121,7 @@ public class SuppressionRule {
private List<Float> cvssBelow = new ArrayList<Float>(); private List<Float> cvssBelow = new ArrayList<Float>();
/** /**
* Get the value of cvssBelow * Get the value of cvssBelow.
* *
* @return the value of cvssBelow * @return the value of cvssBelow
*/ */
@@ -130,7 +130,7 @@ public class SuppressionRule {
} }
/** /**
* Set the value of cvssBelow * Set the value of cvssBelow.
* *
* @param cvssBelow new value of cvssBelow * @param cvssBelow new value of cvssBelow
*/ */
@@ -236,6 +236,13 @@ public class SuppressionRule {
return cve.size() > 0; return cve.size() > 0;
} }
/**
* Processes a given dependency to determine if any CPE, CVE, CWE, or CVSS
* scores should be suppressed. If any should be, they are removed from the
* dependency.
*
* @param dependency a project dependency to analyze
*/
public void process(Dependency dependency) { public void process(Dependency dependency) {
if (filePath != null && !filePath.matches(dependency.getFilePath())) { if (filePath != null && !filePath.matches(dependency.getFilePath())) {
return; return;
@@ -244,9 +251,9 @@ public class SuppressionRule {
return; return;
} }
if (this.hasCpe()) { if (this.hasCpe()) {
Iterator<Identifier> itr = dependency.getIdentifiers().iterator(); final Iterator<Identifier> itr = dependency.getIdentifiers().iterator();
while (itr.hasNext()) { while (itr.hasNext()) {
Identifier i = itr.next(); final Identifier i = itr.next();
for (PropertyType c : this.cpe) { for (PropertyType c : this.cpe) {
if (cpeMatches(c, i)) { if (cpeMatches(c, i)) {
itr.remove(); itr.remove();
@@ -256,10 +263,10 @@ public class SuppressionRule {
} }
} }
if (hasCve() || hasCwe() || hasCvssBelow()) { if (hasCve() || hasCwe() || hasCvssBelow()) {
Iterator<Vulnerability> itr = dependency.getVulnerabilities().iterator(); final Iterator<Vulnerability> itr = dependency.getVulnerabilities().iterator();
boolean remove = false; boolean remove = false;
while (!remove && itr.hasNext()) { while (!remove && itr.hasNext()) {
Vulnerability v = itr.next(); final Vulnerability v = itr.next();
for (String entry : this.cve) { for (String entry : this.cve) {
if (entry.equalsIgnoreCase(v.getName())) { if (entry.equalsIgnoreCase(v.getName())) {
remove = true; remove = true;
@@ -293,6 +300,14 @@ public class SuppressionRule {
} }
} }
/**
* Identifies if the cpe specified by the cpe suppression rule does not
* specify a version.
*
* @param c a suppression rule identifier
* @return true if the property type does not specify a version; otherwise
* false
*/
boolean cpeHasNoVersion(PropertyType c) { boolean cpeHasNoVersion(PropertyType c) {
if (c.isRegex()) { if (c.isRegex()) {
return false; return false;
@@ -303,6 +318,14 @@ public class SuppressionRule {
return false; return false;
} }
/**
* Counts the number of occurrences of the character found within the
* string.
*
* @param str the string to check
* @param c the character to count
* @return the number of times the character is found in the string
*/
int countCharacter(String str, char c) { int countCharacter(String str, char c) {
int count = 0; int count = 0;
int pos = str.indexOf(c) + 1; int pos = str.indexOf(c) + 1;
@@ -313,6 +336,14 @@ public class SuppressionRule {
return count; return count;
} }
/**
* Determines if the cpeEntry specified as a PropertyType matches the given
* Identifier.
*
* @param cpeEntry a suppression rule entry
* @param identifier a CPE identifier to check
* @return true if the entry matches; otherwise false
*/
boolean cpeMatches(PropertyType cpeEntry, Identifier identifier) { boolean cpeMatches(PropertyType cpeEntry, Identifier identifier) {
if (cpeEntry.matches(identifier.getValue())) { if (cpeEntry.matches(identifier.getValue())) {
return true; return true;