Class CentralAnalyzer
- java.lang.Object
-
- org.owasp.dependencycheck.analyzer.AbstractAnalyzer
-
- org.owasp.dependencycheck.analyzer.AbstractFileTypeAnalyzer
-
- org.owasp.dependencycheck.analyzer.CentralAnalyzer
-
- All Implemented Interfaces:
java.io.FileFilter,Analyzer,FileTypeAnalyzer
@ThreadSafe public class CentralAnalyzer extends AbstractFileTypeAnalyzer
Analyzer which will attempt to locate a dependency, and the GAV information, by querying Central for the dependency's SHA-1 digest.- Author:
- colezlaw
-
-
Constructor Summary
Constructors Constructor Description CentralAnalyzer()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidanalyzeDependency(Dependency dependency, Engine engine)Performs the analysis.protected java.util.List<MavenArtifact>fetchMavenArtifacts(Dependency dependency)Downloads the corresponding list of MavenArtifacts of the given dependency from MavenCentral.AnalysisPhasegetAnalysisPhase()Returns the analysis phase under which the analyzer runs.protected java.lang.StringgetAnalyzerEnabledSettingKey()Returns the key used in the properties file to to reference the analyzer's enabled property.protected java.io.FileFiltergetFileFilter()Returns theFileFilterused to determine which files are to be analyzed.java.lang.StringgetName()Returns the analyzer's name.voidinitialize(Settings settings)Initializes the analyzer with the configured settings.voidprepareFileTypeAnalyzer(Engine engine)Initializes the analyzer once before any analysis is performed.protected voidsetCentralSearch(CentralSearch searcher)Method used by unit tests to setup the analyzer.booleansupportsParallelProcessing()Whether the analyzer is configured to support parallel processing.-
Methods inherited from class org.owasp.dependencycheck.analyzer.AbstractFileTypeAnalyzer
accept, getFilesMatched, newHashSet, prepareAnalyzer, setFilesMatched
-
Methods inherited from class org.owasp.dependencycheck.analyzer.AbstractAnalyzer
analyze, close, closeAnalyzer, getSettings, isEnabled, prepare, setEnabled
-
-
-
-
Method Detail
-
initialize
public void initialize(Settings settings)
Initializes the analyzer with the configured settings.- Specified by:
initializein interfaceAnalyzer- Overrides:
initializein classAbstractAnalyzer- Parameters:
settings- the configured settings to use
-
supportsParallelProcessing
public boolean supportsParallelProcessing()
Whether the analyzer is configured to support parallel processing.- Specified by:
supportsParallelProcessingin interfaceAnalyzer- Overrides:
supportsParallelProcessingin classAbstractAnalyzer- Returns:
- true if configured to support parallel processing; otherwise false
-
prepareFileTypeAnalyzer
public void prepareFileTypeAnalyzer(Engine engine) throws InitializationException
Initializes the analyzer once before any analysis is performed.- Specified by:
prepareFileTypeAnalyzerin classAbstractFileTypeAnalyzer- Parameters:
engine- a reference to the dependency-check engine- Throws:
InitializationException- if there's an error during initialization
-
getName
public java.lang.String getName()
Returns the analyzer's name.- Returns:
- the name of the analyzer
-
getAnalyzerEnabledSettingKey
protected java.lang.String getAnalyzerEnabledSettingKey()
Returns the key used in the properties file to to reference the analyzer's enabled property.- Specified by:
getAnalyzerEnabledSettingKeyin classAbstractAnalyzer- Returns:
- the analyzer's enabled property setting key.
-
getAnalysisPhase
public AnalysisPhase getAnalysisPhase()
Returns the analysis phase under which the analyzer runs.- Returns:
- the phase under which the analyzer runs
-
getFileFilter
protected java.io.FileFilter getFileFilter()
Description copied from class:AbstractFileTypeAnalyzerReturns the
FileFilterused to determine which files are to be analyzed. An example would be an analyzer that inspected Java jar files. Implementors may useFileFilterBuilder.If the analyzer returns null it will not cause additional files to be analyzed, but will be executed against every file loaded.
- Specified by:
getFileFilterin classAbstractFileTypeAnalyzer- Returns:
- the file filter used to determine which files are to be analyzed
-
analyzeDependency
public void analyzeDependency(Dependency dependency, Engine engine) throws AnalysisException
Performs the analysis.- Specified by:
analyzeDependencyin classAbstractAnalyzer- Parameters:
dependency- the dependency to analyzeengine- the engine- Throws:
AnalysisException- when there's an exception during analysis
-
fetchMavenArtifacts
protected java.util.List<MavenArtifact> fetchMavenArtifacts(Dependency dependency) throws java.io.IOException, TooManyRequestsException
Downloads the corresponding list of MavenArtifacts of the given dependency from MavenCentral.As the connection to MavenCentral is known to be unreliable, we implement a simple retry logic in order to compensate for 99% of the issues.
- Parameters:
dependency- the dependency to analyze- Returns:
- the downloaded list of MavenArtifacts
- Throws:
java.io.FileNotFoundException- if the specified artifact is not foundjava.io.IOException- if connecting to MavenCentral finally failedTooManyRequestsException- if Central has received too many requests.
-
setCentralSearch
protected void setCentralSearch(CentralSearch searcher)
Method used by unit tests to setup the analyzer.- Parameters:
searcher- the Central Search object to use.
-
-