Class PerlCpanfileAnalyzer
- java.lang.Object
-
- org.owasp.dependencycheck.analyzer.AbstractAnalyzer
-
- org.owasp.dependencycheck.analyzer.AbstractFileTypeAnalyzer
-
- org.owasp.dependencycheck.analyzer.PerlCpanfileAnalyzer
-
- All Implemented Interfaces:
java.io.FileFilter
,Analyzer
,FileTypeAnalyzer
@ThreadSafe public class PerlCpanfileAnalyzer extends AbstractFileTypeAnalyzer
Used to analyze Perl CPAN files. The analyzer does not yet differentiate developer and test dependencies from required dependencies. Nor does the analyzer support `cpanfile.snapshot` files yet. Finally, version ranges are not yet correctly handled either.
Future enhancements should include supporting the snapshot files (which should not have version ranges) and correctly parsing the cpanfile DSL so that one can differentiate developer and test dependencies - which one may not want to include in the analysis.
- Author:
- Harjit Sandhu, Jeremy Long
-
-
Constructor Summary
Constructors Constructor Description PerlCpanfileAnalyzer()
Create a new Perl CPAN File Analyzer.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected void
analyzeDependency(Dependency dependency, Engine engine)
Analyzes a given dependency.AnalysisPhase
getAnalysisPhase()
Returns the phase that the analyzer is intended to run in.protected java.lang.String
getAnalyzerEnabledSettingKey()
Returns the setting key to determine if the analyzer is enabled.protected java.io.FileFilter
getFileFilter()
Returns theFileFilter
used to determine which files are to be analyzed.java.lang.String
getName()
Returns the name of the analyzer.protected java.util.List<java.lang.String>
prepareContents(java.lang.String contents)
protected void
prepareFileTypeAnalyzer(Engine engine)
Prepares the file type analyzer for dependency analysis.protected void
processFileContents(java.util.List<java.lang.String> fileLines, java.lang.String filePath, Engine engine)
-
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, initialize, isEnabled, prepare, setEnabled, supportsParallelProcessing
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.owasp.dependencycheck.analyzer.Analyzer
analyze, close, initialize, isEnabled, prepare, supportsParallelProcessing
-
-
-
-
Method Detail
-
getFileFilter
protected java.io.FileFilter getFileFilter()
Description copied from class:AbstractFileTypeAnalyzer
Returns the
FileFilter
used 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:
getFileFilter
in classAbstractFileTypeAnalyzer
- Returns:
- the file filter used to determine which files are to be analyzed
-
getName
public java.lang.String getName()
Description copied from interface:Analyzer
Returns the name of the analyzer.- Returns:
- the name of the analyzer.
-
getAnalysisPhase
public AnalysisPhase getAnalysisPhase()
Description copied from interface:Analyzer
Returns the phase that the analyzer is intended to run in.- Returns:
- the phase that the analyzer is intended to run in.
-
getAnalyzerEnabledSettingKey
protected java.lang.String getAnalyzerEnabledSettingKey()
Description copied from class:AbstractAnalyzer
Returns the setting key to determine if the analyzer is enabled.
- Specified by:
getAnalyzerEnabledSettingKey
in classAbstractAnalyzer
- Returns:
- the key for the analyzer's enabled property
-
prepareFileTypeAnalyzer
protected void prepareFileTypeAnalyzer(Engine engine) throws InitializationException
Description copied from class:AbstractFileTypeAnalyzer
Prepares the file type analyzer for dependency analysis.- Specified by:
prepareFileTypeAnalyzer
in classAbstractFileTypeAnalyzer
- Parameters:
engine
- a reference to the dependency-check engine- Throws:
InitializationException
- thrown if there is an exception during initialization
-
analyzeDependency
protected void analyzeDependency(Dependency dependency, Engine engine) throws AnalysisException
Description copied from class:AbstractAnalyzer
Analyzes 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:
analyzeDependency
in classAbstractAnalyzer
- Parameters:
dependency
- the dependency to analyzeengine
- the engine scanning- Throws:
AnalysisException
- thrown if there is an analysis exception
-
prepareContents
protected java.util.List<java.lang.String> prepareContents(java.lang.String contents)
-
processFileContents
protected void processFileContents(java.util.List<java.lang.String> fileLines, java.lang.String filePath, Engine engine) throws AnalysisException
- Throws:
AnalysisException
-
-