Class NodePackageAnalyzer
java.lang.Object
org.owasp.dependencycheck.analyzer.AbstractAnalyzer
org.owasp.dependencycheck.analyzer.AbstractFileTypeAnalyzer
org.owasp.dependencycheck.analyzer.AbstractNpmAnalyzer
org.owasp.dependencycheck.analyzer.NodePackageAnalyzer
- All Implemented Interfaces:
FileFilter, Analyzer, FileTypeAnalyzer
Used to analyze Node Package Manager (npm) package.json files, and collect
information that can be used to determine the associated CPE.
- Author:
- Dale Visser
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final StringA descriptor for the type of dependencies processed or added by this analyzer.static final StringThe name of the directory that contains node modules.static final StringThe file name to scan.static final StringThe file name to scan.static final StringThe file name to scan.Fields inherited from class AbstractNpmAnalyzer
NPM_DEPENDENCY_ECOSYSTEM -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected voidanalyzeDependency(Dependency dependency, Engine engine) Analyzes a given dependency.Returns the phase that the analyzer is intended to run in.protected StringReturns the key used in the properties file to reference the enabled property for the analyzer.protected FileFilterReturns the FileFiltergetName()Returns the name of the analyzer.protected voidprepareFileTypeAnalyzer(Engine engine) Performs validation on the configuration to ensure that the correct analyzers are in place.static booleanshouldSkipDependency(String name, String version) Checks if the given dependency should be skipped.static booleanshouldSkipDependency(String name, String version, boolean optional, boolean fileExist) should process the dependency ?Methods inherited from class AbstractNpmAnalyzer
accept, createDependency, determineVersionFromMap, findDependency, gatherEvidence, getSearcher, processPackage, processPackage, processResults, replaceOrAddVulnerability, shouldProcessMethods inherited from class AbstractFileTypeAnalyzer
getFilesMatched, newHashSet, prepareAnalyzer, setFilesMatchedMethods inherited from class AbstractAnalyzer
analyze, close, closeAnalyzer, getSettings, initialize, isEnabled, prepare, setEnabled, supportsParallelProcessingMethods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface Analyzer
analyze, close, initialize, isEnabled, prepare, supportsParallelProcessing
-
Field Details
-
DEPENDENCY_ECOSYSTEM
A descriptor for the type of dependencies processed or added by this analyzer.- See Also:
-
PACKAGE_JSON
-
PACKAGE_LOCK_JSON
-
SHRINKWRAP_JSON
-
NODE_MODULES_DIRNAME
The name of the directory that contains node modules.- See Also:
-
-
Constructor Details
-
NodePackageAnalyzer
public NodePackageAnalyzer()
-
-
Method Details
-
getFileFilter
Returns the FileFilter- Specified by:
getFileFilterin classAbstractFileTypeAnalyzer- Returns:
- the FileFilter
-
prepareFileTypeAnalyzer
Performs validation on the configuration to ensure that the correct analyzers are in place.- Overrides:
prepareFileTypeAnalyzerin classAbstractNpmAnalyzer- Parameters:
engine- the dependency-check engine- Throws:
InitializationException- thrown if there is a configuration error
-
getName
-
getAnalysisPhase
Returns the phase that the analyzer is intended to run in.- Returns:
- the phase that the analyzer is intended to run in.
-
getAnalyzerEnabledSettingKey
Returns the key used in the properties file to reference the enabled property for the analyzer.- Specified by:
getAnalyzerEnabledSettingKeyin classAbstractAnalyzer- Returns:
- the enabled property setting key for the analyzer
-
analyzeDependency
Description copied from class:AbstractAnalyzerAnalyzes a given dependency. If the dependency is an archive, such as a WAR or EAR, the contents are extracted, scanned, and added to the list of dependencies within the engine.- Specified by:
analyzeDependencyin classAbstractAnalyzer- Parameters:
dependency- the dependency to analyzeengine- the engine scanning- Throws:
AnalysisException- thrown if there is an analysis exception
-
shouldSkipDependency
public static boolean shouldSkipDependency(String name, String version, boolean optional, boolean fileExist) should process the dependency ? Will return true if you need to skip it . (e.g. dependency can't be read, or if npm audit doesn't handle it)- Parameters:
name- the name of the dependencyversion- the version of the dependencyoptional- is the dependency optional ?fileExist- is the package.json available for this file ?- Returns:
- should you skip this dependency ?
-
shouldSkipDependency
Checks if the given dependency should be skipped.- Parameters:
name- the name of the dependency to testversion- the version of the dependency to test- Returns:
trueif the dependency should be skipped; otherwisefalse- See Also:
-