get authors field

This commit is contained in:
bjiang
2016-05-03 14:53:25 -04:00
parent f1422adf75
commit 5fcf2a2623

View File

@@ -20,6 +20,7 @@ package org.owasp.dependencycheck.analyzer;
import java.io.File; import java.io.File;
import java.io.FileFilter; import java.io.FileFilter;
import java.io.IOException; import java.io.IOException;
import java.nio.charset.Charset;
import java.util.Map; import java.util.Map;
import java.util.regex.Matcher; import java.util.regex.Matcher;
import java.util.regex.Pattern; import java.util.regex.Pattern;
@@ -129,7 +130,7 @@ public class CocoaPodsAnalyzer extends AbstractFileTypeAnalyzer {
String contents; String contents;
try { try {
contents = FileUtils.readFileToString(dependency.getActualFile()); contents = FileUtils.readFileToString(dependency.getActualFile(), Charset.defaultCharset());
} catch (IOException e) { } catch (IOException e) {
throw new AnalysisException( throw new AnalysisException(
"Problem occurred while reading dependency file.", e); "Problem occurred while reading dependency file.", e);
@@ -157,38 +158,6 @@ public class CocoaPodsAnalyzer extends AbstractFileTypeAnalyzer {
} }
setPackagePath(dependency); setPackagePath(dependency);
// final File file = dependency.getActualFile();
// JsonReader jsonReader;
// try {
// jsonReader = Json.createReader(FileUtils.openInputStream(file));
// } catch (IOException e) {
// throw new AnalysisException(
// "Problem occurred while reading dependency file.", e);
// }
// try {
// final JsonObject json = jsonReader.readObject();
// final EvidenceCollection productEvidence = dependency.getProductEvidence();
// final EvidenceCollection vendorEvidence = dependency.getVendorEvidence();
// if (json.containsKey("name")) {
// final Object value = json.get("name");
// if (value instanceof JsonString) {
// final String valueString = ((JsonString) value).getString();
// productEvidence.addEvidence(PODSPEC, "name", valueString, Confidence.HIGHEST);
// vendorEvidence.addEvidence(PODSPEC, "name_project", String.format("%s_project", valueString), Confidence.LOW);
// } else {
// LOGGER.warn("JSON value not string as expected: {}", value);
// }
// }
// addToEvidence(json, productEvidence, "description");
// addToEvidence(json, vendorEvidence, "author");
// addToEvidence(json, dependency.getVersionEvidence(), "version");
// dependency.setDisplayFileName(String.format("%s/%s", file.getParentFile().getName(), file.getName()));
// } catch (JsonException e) {
// LOGGER.warn("Failed to parse package.json file.", e);
// } finally {
// jsonReader.close();
// }
} }
private String addStringEvidence(EvidenceCollection evidences, String contents, private String addStringEvidence(EvidenceCollection evidences, String contents,
@@ -197,10 +166,9 @@ public class CocoaPodsAnalyzer extends AbstractFileTypeAnalyzer {
//capture array value between [ ] //capture array value between [ ]
final Matcher arrayMatcher = Pattern.compile( final Matcher arrayMatcher = Pattern.compile(
String.format("\\s*?%s\\.%s\\s*?=\\s*?\\[(.*?)\\]", blockVariable, fieldPattern), Pattern.CASE_INSENSITIVE).matcher(contents); String.format("\\s*?%s\\.%s\\s*?=\\s*?\\{\\s*?(.*?)\\s*?\\}", blockVariable, fieldPattern), Pattern.CASE_INSENSITIVE).matcher(contents);
if(arrayMatcher.find()) { if(arrayMatcher.find()) {
String arrayValue = arrayMatcher.group(1); value = arrayMatcher.group(1);
value = arrayValue.replaceAll("['\"]", "").trim(); //strip quotes
} }
//capture single value between quotes //capture single value between quotes
else { else {