From 483694db0f2008d7b66ae56988b0ec3f8981d19d Mon Sep 17 00:00:00 2001 From: SLahiruC <40932779+slahirucd7@users.noreply.github.com> Date: Mon, 11 Dec 2023 20:52:44 +0530 Subject: [PATCH] minor improvements minor improvement minor improvement --- adapter/internal/oasparser/model/open_api.go | 5 +++-- adapter/internal/oasparser/model/swagger.go | 11 +++++------ resources/conf/config.toml.template | 2 ++ 3 files changed, 10 insertions(+), 8 deletions(-) diff --git a/adapter/internal/oasparser/model/open_api.go b/adapter/internal/oasparser/model/open_api.go index 64a461e571..392d6f4c0b 100644 --- a/adapter/internal/oasparser/model/open_api.go +++ b/adapter/internal/oasparser/model/open_api.go @@ -133,8 +133,9 @@ func setResourcesOpenAPI(openAPI openapi3.Swagger) ([]*Resource, error) { if openAPI.Paths != nil { conf, _ := config.ReadConfigs() for path, pathItem := range openAPI.Paths { - if conf.Envoy.MaximumResourcePathLengthInKB != -1 && (isResourcePathLimitExceeds(path, int(conf.Envoy.MaximumResourcePathLengthInKB))) { - return nil, errors.New("The path " + path + " exceeds maximum allowed length") + if conf.Envoy.MaximumResourcePathLengthInKB != -1 && + isResourcePathLimitExceeds(path, int(conf.Envoy.MaximumResourcePathLengthInKB)) { + return nil, errors.New("path: " + path + " exceeds maximum allowed length") } // Checks for resource level security. (security is disabled in resource level using x-wso2-disable-security extension) isResourceLvlSecurityDisabled, foundInResourceLevel := resolveDisableSecurity(pathItem.ExtensionProps) diff --git a/adapter/internal/oasparser/model/swagger.go b/adapter/internal/oasparser/model/swagger.go index 805aaeb5e6..b19d1f38a4 100644 --- a/adapter/internal/oasparser/model/swagger.go +++ b/adapter/internal/oasparser/model/swagger.go @@ -22,7 +22,6 @@ import ( "github.com/go-openapi/spec" "github.com/google/uuid" - "github.com/wso2/product-microgateway/adapter/config" logger "github.com/wso2/product-microgateway/adapter/internal/loggers" ) @@ -46,11 +45,11 @@ func (swagger *MgwSwagger) SetInfoSwagger(swagger2 spec.Swagger) error { swagger.vendorExtensions = swagger2.VendorExtensible.Extensions swagger.securityScheme = setSecurityDefinitions(swagger2) swagger.security = swagger2.Security - parsedEndpoints, epParsingError := setResourcesSwagger(swagger2) - if epParsingError != nil { - return errors.New("one of the resource paths exceeds maximum allowed content length") + parsedResources, resourceParsingError := setResourcesSwagger(swagger2) + if resourceParsingError != nil { + return errors.New("one of the resource paths in the swagger definition exceeds maximum allowed content length") } - swagger.resources = parsedEndpoints + swagger.resources = parsedResources swagger.apiType = HTTP swagger.xWso2Basepath = swagger2.BasePath // According to the definition, multiple schemes can be mentioned. Since the microgateway can assign only one scheme @@ -96,7 +95,7 @@ func setResourcesSwagger(swagger2 spec.Swagger) ([]*Resource, error) { for path, pathItem := range swagger2.Paths.Paths { if conf.Envoy.MaximumResourcePathLengthInKB != -1 && isResourcePathLimitExceeds(path, int(conf.Envoy.MaximumResourcePathLengthInKB)) { - return nil, errors.New("The path " + path + " exceeds maximum allowed length") + return nil, errors.New("path: " + path + " exceeds maximum allowed length") } disableSecurity, found := swagger2.VendorExtensible.Extensions.GetBool(xWso2DisableSecurity) // Checks for resource level security, if security is disabled in resource level, diff --git a/resources/conf/config.toml.template b/resources/conf/config.toml.template index 0b911dcb9b..856b537241 100644 --- a/resources/conf/config.toml.template +++ b/resources/conf/config.toml.template @@ -84,6 +84,8 @@ sandboxVhost = "sandbox.host" systemHost = "localhost" # Hostname for API Resources exposed within the cluster (eg: /.wellknown/jwks and /testkey) internalServiceHost = "localhost" + # Allowed maximum resource path content size in KB + maximumResourcePathLengthInKB = -1 # Configurations of key store used in Choreo Connect Router [router.keystore]