Skip to content

Commit

Permalink
fix: openapi definition should only return known http methods
Browse files Browse the repository at this point in the history
  • Loading branch information
cfabianski committed Feb 4, 2025
1 parent dc8f119 commit 97c549c
Show file tree
Hide file tree
Showing 3 changed files with 67 additions and 129 deletions.
33 changes: 23 additions & 10 deletions pkg/detectors/openapi/reportadder/reportadder.go
Original file line number Diff line number Diff line change
Expand Up @@ -113,26 +113,39 @@ func AddOperations(file *file.FileInfo, report reporttypes.Report, foundValues m
return *lineNumberA < *lineNumberB
})
for _, operation := range sortedOperations {
operation.Source.Language = file.Language
operation.Source.LanguageType = file.LanguageTypeString()
operation.Value.Path = standardizeOperationPath(stringutil.StripQuotes(operation.Value.Path))
operation.Value.Type = standardizeOperationType(stringutil.StripQuotes(operation.Value.Type))
operation.Value.Urls = servers
report.AddOperation(detectors.DetectorOpenAPI, operation.Value, operation.Source)
if httpMethod := standardizeOperationType(stringutil.StripQuotes(operation.Value.Type)); httpMethod != nil {
operation.Source.Language = file.Language
operation.Source.LanguageType = file.LanguageTypeString()
operation.Value.Path = standardizeOperationPath(stringutil.StripQuotes(operation.Value.Path))
operation.Value.Type = *httpMethod
operation.Value.Urls = servers
report.AddOperation(detectors.DetectorOpenAPI, operation.Value, operation.Source)

}
}
}

func standardizeOperationType(input string) (output string) {
func standardizeOperationType(input string) (output *string) {
input = strings.ToUpper(input)
supportedvalues := []string{operations.TypeGet, operations.TypeDelete, operations.TypePost, operations.TypePut}
supportedvalues := []string{
operations.TypeGet,
operations.TypePost,
operations.TypePut,
operations.TypeDelete,
operations.TypePatch,
operations.TypeHead,
operations.TypeOptions,
operations.TypeConnect,
operations.TypeTrace,
}

for _, v := range supportedvalues {
if input == v {
return v
return &v
}
}

return operations.TypeOther
return nil
}

func standardizeOperationPath(input string) (output string) {
Expand Down
Loading

0 comments on commit 97c549c

Please sign in to comment.