From dda649db352e888e85b6d1e0a1cc8f4112517d52 Mon Sep 17 00:00:00 2001 From: Ramana Reddy Date: Thu, 5 Sep 2024 18:28:03 +0530 Subject: [PATCH 1/2] fix: parse openapi http security schemes on empty values --- pkg/input/formats/openapi/generator.go | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/pkg/input/formats/openapi/generator.go b/pkg/input/formats/openapi/generator.go index 63fef7e290..e7cdedef5e 100644 --- a/pkg/input/formats/openapi/generator.go +++ b/pkg/input/formats/openapi/generator.go @@ -27,7 +27,8 @@ import ( ) const ( - globalAuth = "globalAuth" + globalAuth = "globalAuth" + DEFAULT_HTTP_SCHEME_HEADER = "Authorization" ) // GenerateRequestsFromSchema generates http requests from an OpenAPI 3.0 document object @@ -426,18 +427,22 @@ func GenerateParameterFromSecurityScheme(scheme *openapi3.SecuritySchemeRef) (*o if !generic.EqualsAny(scheme.Value.Scheme, "basic", "bearer") { return nil, errorutil.NewWithTag("openapi", "unsupported security scheme (%s) found in openapi file", scheme.Value.Scheme) } + // HTTP authentication schemes basic or bearer use the Authorization header + var headerName string if scheme.Value.Name == "" { - return nil, errorutil.NewWithTag("openapi", "security scheme (%s) name is empty", scheme.Value.Scheme) + headerName = DEFAULT_HTTP_SCHEME_HEADER + } else { + headerName = scheme.Value.Name } // create parameters using the scheme switch scheme.Value.Scheme { case "basic": - h := openapi3.NewHeaderParameter(scheme.Value.Name) + h := openapi3.NewHeaderParameter(headerName) h.Required = true h.Description = globalAuth // differentiator for normal variables and global auth return h, nil case "bearer": - h := openapi3.NewHeaderParameter(scheme.Value.Name) + h := openapi3.NewHeaderParameter(headerName) h.Required = true h.Description = globalAuth // differentiator for normal variables and global auth return h, nil From f7497f6be63aac13cdb10f7965244cdb023fb724 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Do=C4=9Fan=20Can=20Bak=C4=B1r?= Date: Mon, 9 Sep 2024 12:35:42 +0300 Subject: [PATCH 2/2] minor --- pkg/input/formats/openapi/generator.go | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/pkg/input/formats/openapi/generator.go b/pkg/input/formats/openapi/generator.go index e7cdedef5e..e22c078769 100644 --- a/pkg/input/formats/openapi/generator.go +++ b/pkg/input/formats/openapi/generator.go @@ -428,11 +428,9 @@ func GenerateParameterFromSecurityScheme(scheme *openapi3.SecuritySchemeRef) (*o return nil, errorutil.NewWithTag("openapi", "unsupported security scheme (%s) found in openapi file", scheme.Value.Scheme) } // HTTP authentication schemes basic or bearer use the Authorization header - var headerName string - if scheme.Value.Name == "" { + headerName := scheme.Value.Name + if headerName == "" { headerName = DEFAULT_HTTP_SCHEME_HEADER - } else { - headerName = scheme.Value.Name } // create parameters using the scheme switch scheme.Value.Scheme {