Skip to content

Commit d2a4db8

Browse files
authored
feat(java): add support PAR files (fanal#373)
1 parent abf0055 commit d2a4db8

File tree

3 files changed

+19
-4
lines changed

3 files changed

+19
-4
lines changed

analyzer/language/java/jar/jar.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,16 +20,16 @@ func init() {
2020

2121
const version = 1
2222

23-
var requiredExtensions = []string{".jar", ".war", ".ear"}
23+
var requiredExtensions = []string{".jar", ".war", ".ear", ".par"}
2424

25-
// javaLibraryAnalyzer analyzes jar/war/ear files
25+
// javaLibraryAnalyzer analyzes jar/war/ear/par files
2626
type javaLibraryAnalyzer struct{}
2727

2828
func (a javaLibraryAnalyzer) Analyze(_ context.Context, input analyzer.AnalysisInput) (*analyzer.AnalysisResult, error) {
2929
libs, err := jar.Parse(input.Content, input.Info.Size(),
3030
jar.WithFilePath(input.FilePath), jar.WithOffline(input.Options.Offline))
3131
if err != nil {
32-
return nil, xerrors.Errorf("jar/war/ear parse error: %w", err)
32+
return nil, xerrors.Errorf("jar/war/ear/par parse error: %w", err)
3333
}
3434

3535
return language.ToAnalysisResult(types.Jar, input.FilePath, input.FilePath, libs), nil

analyzer/language/java/jar/jar_test.go

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ func Test_javaLibraryAnalyzer_Analyze(t *testing.T) {
2020
wantErr string
2121
}{
2222
{
23-
name: "happy path",
23+
name: "happy path (WAR file)",
2424
inputFile: "testdata/test.war",
2525
want: &analyzer.AnalysisResult{
2626
Applications: []types.Application{
@@ -41,6 +41,21 @@ func Test_javaLibraryAnalyzer_Analyze(t *testing.T) {
4141
},
4242
},
4343
},
44+
{
45+
name: "happy path (PAR file)",
46+
inputFile: "testdata/test.par",
47+
want: &analyzer.AnalysisResult{
48+
Applications: []types.Application{
49+
{
50+
Type: types.Jar,
51+
FilePath: "testdata/test.par",
52+
Libraries: []types.Package{
53+
{Name: "com.fasterxml.jackson.core:jackson-core", FilePath: "testdata/test.par", Version: "2.9.10"},
54+
},
55+
},
56+
},
57+
},
58+
},
4459
{
4560
name: "sad path",
4661
inputFile: "testdata/test.txt",
302 KB
Binary file not shown.

0 commit comments

Comments
 (0)