diff --git a/dependency-check-core/src/main/java/org/owasp/dependencycheck/analyzer/JarAnalyzer.java b/dependency-check-core/src/main/java/org/owasp/dependencycheck/analyzer/JarAnalyzer.java index 8cba0c48c..d9761fed0 100644 --- a/dependency-check-core/src/main/java/org/owasp/dependencycheck/analyzer/JarAnalyzer.java +++ b/dependency-check-core/src/main/java/org/owasp/dependencycheck/analyzer/JarAnalyzer.java @@ -43,6 +43,7 @@ import java.util.regex.Pattern; import java.util.zip.ZipEntry; import org.apache.commons.compress.utils.IOUtils; import org.apache.commons.io.FilenameUtils; +import org.apache.commons.lang3.StringUtils; import org.jsoup.Jsoup; import org.owasp.dependencycheck.Engine; import org.owasp.dependencycheck.analyzer.exception.AnalysisException; @@ -1145,7 +1146,7 @@ public class JarAnalyzer extends AbstractFileTypeAnalyzer { ClassNameInformation(String className) { name = className; if (name.contains("/")) { - final String[] tmp = className.toLowerCase().split("/"); + final String[] tmp = StringUtils.split(className.toLowerCase(), '/'); int start = 0; int end = 3; if ("com".equals(tmp[0]) || "org".equals(tmp[0])) { diff --git a/dependency-check-core/src/main/java/org/owasp/dependencycheck/data/cpe/IndexEntry.java b/dependency-check-core/src/main/java/org/owasp/dependencycheck/data/cpe/IndexEntry.java index 960729e85..54efbafd4 100644 --- a/dependency-check-core/src/main/java/org/owasp/dependencycheck/data/cpe/IndexEntry.java +++ b/dependency-check-core/src/main/java/org/owasp/dependencycheck/data/cpe/IndexEntry.java @@ -20,6 +20,7 @@ package org.owasp.dependencycheck.data.cpe; import java.io.Serializable; import java.io.UnsupportedEncodingException; import java.net.URLDecoder; +import org.apache.commons.lang3.StringUtils; /** * A CPE entry containing the name, vendor, product, and version. @@ -143,7 +144,8 @@ public class IndexEntry implements Serializable { */ public void parseName(String cpeName) throws UnsupportedEncodingException { if (cpeName != null && cpeName.length() > 7) { - final String[] data = cpeName.substring(7).split(":"); + final String cpeNameWithoutPrefix = cpeName.substring(7); + final String[] data = StringUtils.split(cpeNameWithoutPrefix, ':'); if (data.length >= 1) { vendor = URLDecoder.decode(data[0].replace("+", "%2B"), "UTF-8"); if (data.length >= 2) { diff --git a/dependency-check-core/src/main/java/org/owasp/dependencycheck/data/update/cpe/Cpe.java b/dependency-check-core/src/main/java/org/owasp/dependencycheck/data/update/cpe/Cpe.java index 1d4c3cb33..980552df1 100644 --- a/dependency-check-core/src/main/java/org/owasp/dependencycheck/data/update/cpe/Cpe.java +++ b/dependency-check-core/src/main/java/org/owasp/dependencycheck/data/update/cpe/Cpe.java @@ -17,6 +17,7 @@ */ package org.owasp.dependencycheck.data.update.cpe; +import org.apache.commons.lang3.StringUtils; import java.io.UnsupportedEncodingException; import java.net.URLDecoder; import org.owasp.dependencycheck.data.update.exception.InvalidDataException; @@ -36,7 +37,8 @@ public class Cpe { */ public Cpe(String value) throws UnsupportedEncodingException, InvalidDataException { this.value = value; - final String[] data = value.substring(7).split(":"); + final String valueWithoutPrefix = value.substring(7); + final String[] data = StringUtils.split(valueWithoutPrefix, ':'); if (data.length >= 2) { vendor = URLDecoder.decode(data[0].replace("+", "%2B"), "UTF-8"); product = URLDecoder.decode(data[1].replace("+", "%2B"), "UTF-8"); diff --git a/dependency-check-core/src/main/java/org/owasp/dependencycheck/dependency/VulnerableSoftware.java b/dependency-check-core/src/main/java/org/owasp/dependencycheck/dependency/VulnerableSoftware.java index 12a1121d7..9c3570914 100644 --- a/dependency-check-core/src/main/java/org/owasp/dependencycheck/dependency/VulnerableSoftware.java +++ b/dependency-check-core/src/main/java/org/owasp/dependencycheck/dependency/VulnerableSoftware.java @@ -20,6 +20,7 @@ package org.owasp.dependencycheck.dependency; import java.io.Serializable; import java.io.UnsupportedEncodingException; import java.net.URLDecoder; +import org.apache.commons.lang3.StringUtils; import org.owasp.dependencycheck.data.cpe.IndexEntry; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -73,7 +74,8 @@ public class VulnerableSoftware extends IndexEntry implements Serializable, Comp public void parseName(String cpeName) throws UnsupportedEncodingException { this.name = cpeName; if (cpeName != null && cpeName.length() > 7) { - final String[] data = cpeName.substring(7).split(":"); + final String cpeNameWithoutPrefix = cpeName.substring(7); + final String[] data = StringUtils.split(cpeNameWithoutPrefix, ':'); if (data.length >= 1) { this.setVendor(urlDecode(data[0])); } @@ -172,8 +174,8 @@ public class VulnerableSoftware extends IndexEntry implements Serializable, Comp @Override public int compareTo(VulnerableSoftware vs) { int result = 0; - final String[] left = this.name.split(":"); - final String[] right = vs.getName().split(":"); + final String[] left = StringUtils.split(this.name, ':'); + final String[] right = StringUtils.split(vs.getName(), ':'); final int max = (left.length <= right.length) ? left.length : right.length; if (max > 0) { for (int i = 0; result == 0 && i < max; i++) {