diff --git a/dependency-check-core/src/main/java/org/owasp/dependencycheck/analyzer/RubyBundleAuditAnalyzer.java b/dependency-check-core/src/main/java/org/owasp/dependencycheck/analyzer/RubyBundleAuditAnalyzer.java index d95c1a7cc..8a315bd42 100644 --- a/dependency-check-core/src/main/java/org/owasp/dependencycheck/analyzer/RubyBundleAuditAnalyzer.java +++ b/dependency-check-core/src/main/java/org/owasp/dependencycheck/analyzer/RubyBundleAuditAnalyzer.java @@ -203,21 +203,25 @@ public class RubyBundleAuditAnalyzer extends AbstractFileTypeAnalyzer { @Override protected void analyzeFileType(Dependency dependency, Engine engine) throws AnalysisException { -// if (needToDisableGemspecAnalyzer) { -// boolean failed = true; -// final String className = RubyGemspecAnalyzer.class.getName(); -// for (FileTypeAnalyzer analyzer : engine.getFileTypeAnalyzers()) { -// if (analyzer instanceof RubyGemspecAnalyzer) { -// ((RubyGemspecAnalyzer) analyzer).setEnabled(false); -// LOGGER.info("Disabled " + className + " to avoid noisy duplicate results."); -// failed = false; -// } -// } -// if (failed) { -// LOGGER.warn("Did not find" + className + '.'); -// } -// needToDisableGemspecAnalyzer = false; -// } + if (needToDisableGemspecAnalyzer) { + boolean failed = true; + final String className = RubyGemspecAnalyzer.class.getName(); + for (FileTypeAnalyzer analyzer : engine.getFileTypeAnalyzers()) { + if (analyzer instanceof RubyBundlerAnalyzer) { + ((RubyBundlerAnalyzer) analyzer).setEnabled(false); + LOGGER.info("Disabled " + RubyBundlerAnalyzer.class.getName() + " to avoid noisy duplicate results."); + } + else if (analyzer instanceof RubyGemspecAnalyzer) { + ((RubyGemspecAnalyzer) analyzer).setEnabled(false); + LOGGER.info("Disabled " + className + " to avoid noisy duplicate results."); + failed = false; + } + } + if (failed) { + LOGGER.warn("Did not find " + className + '.'); + } + needToDisableGemspecAnalyzer = false; + } final File parentFile = dependency.getActualFile().getParentFile(); final Process process = launchBundleAudit(parentFile); try { diff --git a/dependency-check-core/src/test/java/org/owasp/dependencycheck/analyzer/RubyBundleAuditAnalyzerTest.java b/dependency-check-core/src/test/java/org/owasp/dependencycheck/analyzer/RubyBundleAuditAnalyzerTest.java index 70dd14d4c..04f167703 100644 --- a/dependency-check-core/src/test/java/org/owasp/dependencycheck/analyzer/RubyBundleAuditAnalyzerTest.java +++ b/dependency-check-core/src/test/java/org/owasp/dependencycheck/analyzer/RubyBundleAuditAnalyzerTest.java @@ -181,9 +181,7 @@ public class RubyBundleAuditAnalyzerTest extends BaseTest { final Engine engine = new Engine(); engine.scan(BaseTest.getResourceAsFile(this, -// "ruby/vulnerable/gems/chef-12.8.4/")); "ruby/vulnerable/gems/rails-4.1.15/")); -// "java")); engine.analyzeDependencies(); List dependencies = engine.getDependencies();