diff --git a/CHANGELOG.md b/CHANGELOG.md index a3ff4c608..f0a7a2552 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,7 +3,10 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](http://keepachangelog.com/) and this project adheres to [Semantic Versioning](http://semver.org/). - +# [1.14.2] In progress +### Fixed +- Regression in host (See issue [#413](https://github.com/Axway-API-Management-Plus/apim-cli/issues/413)) +- gson library 2.4 has vulnerability CVE-2022-25647 (See issue [#425](https://github.com/Axway-API-Management-Plus/apim-cli/issues/425)) # [1.14.1] 2023-07-31 ### Fixed diff --git a/modules/apim-adapter/src/main/java/com/axway/apim/api/specification/Swagger2xSpecification.java b/modules/apim-adapter/src/main/java/com/axway/apim/api/specification/Swagger2xSpecification.java index 327b9c05d..92083736e 100644 --- a/modules/apim-adapter/src/main/java/com/axway/apim/api/specification/Swagger2xSpecification.java +++ b/modules/apim-adapter/src/main/java/com/axway/apim/api/specification/Swagger2xSpecification.java @@ -110,13 +110,18 @@ public void configureBasePath(String backendBasePath, API api) throws AppExcepti ((ObjectNode) swagger).put("basePath", "/"); // to adhere the spec - if basePath is empty, serve the traffic on / - Ref -> https://swagger.io/specification/v2/ } if (CoreParameters.getInstance().isOverrideSpecBasePath()) { + LOG.info("Overriding host scheme and basePath with value : {}", backendBasePath); String basePath = url.getPath(); if (StringUtils.isNotEmpty(basePath)) { LOG.debug("Overriding Swagger basePath with value : {}", basePath); ((ObjectNode) swagger).put("basePath", basePath); }else { - LOG.debug("Not updating basePath as BackendBasepath : {} has empty basePath", backendBasePath); + LOG.debug("Not updating basePath value in swagger 2 as BackendBasePath : {} has empty basePath", backendBasePath); } + ((ObjectNode) swagger).put("host", url.getHost() + port); + ArrayNode newSchemes = this.mapper.createArrayNode(); + newSchemes.add(url.getProtocol()); + ((ObjectNode) swagger).set("schemes", newSchemes); } this.apiSpecificationContent = this.mapper.writeValueAsBytes(swagger); } diff --git a/modules/apim-adapter/src/test/java/com/axway/apim/api/specification/APISpecificationSwagger2xTest.java b/modules/apim-adapter/src/test/java/com/axway/apim/api/specification/APISpecificationSwagger2xTest.java index 8a1b88c6b..1dcc49229 100644 --- a/modules/apim-adapter/src/test/java/com/axway/apim/api/specification/APISpecificationSwagger2xTest.java +++ b/modules/apim-adapter/src/test/java/com/axway/apim/api/specification/APISpecificationSwagger2xTest.java @@ -244,7 +244,7 @@ public void overrideBackendBasePath() throws IOException { JsonNode swagger = mapper.readTree(apiDefinition.getApiSpecificationContent()); Assert.assertEquals(swagger.get("host").asText(), "petstore.swagger.io"); Assert.assertEquals(swagger.get("basePath").asText(), "/test"); - Assert.assertEquals(swagger.get("schemes").get(0).asText(), "https"); + Assert.assertEquals(swagger.get("schemes").get(0).asText(), "http"); Assert.assertEquals(swagger.get("schemes").size(), 1); } @@ -290,6 +290,4 @@ public void testSwaggerWithoutHost() throws IOException{ Assert.assertEquals(swagger.get("schemes").get(0).asText(), "https"); Assert.assertEquals(swagger.get("schemes").size(), 1); } - - } diff --git a/modules/apis/src/main/java/com/axway/apim/api/export/impl/APIResultHandler.java b/modules/apis/src/main/java/com/axway/apim/api/export/impl/APIResultHandler.java index 2efb215b3..5b1fab21a 100644 --- a/modules/apis/src/main/java/com/axway/apim/api/export/impl/APIResultHandler.java +++ b/modules/apis/src/main/java/com/axway/apim/api/export/impl/APIResultHandler.java @@ -282,4 +282,24 @@ protected void writeBytesToFile(byte[] bFile, String fileDest) throws AppExcepti } } + protected APIFilter createFilter(){ + Builder builder = getBaseAPIFilterBuilder(); + switch (params.getWide()) { + case standard: + case wide: + builder.includeQuotas(false); + builder.includeClientApplications(false); + builder.includeClientOrganizations(false); + builder.includeClientAppQuota(false); + builder.includeQuotas(false); + break; + case ultra: + builder.includeQuotas(true); + builder.includeClientAppQuota(false); + builder.includeClientApplications(true); + builder.includeClientOrganizations(true); + break; + } + return builder.build(); + } } diff --git a/modules/apis/src/main/java/com/axway/apim/api/export/impl/CSVAPIExporter.java b/modules/apis/src/main/java/com/axway/apim/api/export/impl/CSVAPIExporter.java index b6e6f86f8..665779fa9 100644 --- a/modules/apis/src/main/java/com/axway/apim/api/export/impl/CSVAPIExporter.java +++ b/modules/apis/src/main/java/com/axway/apim/api/export/impl/CSVAPIExporter.java @@ -1,7 +1,6 @@ package com.axway.apim.api.export.impl; import com.axway.apim.adapter.apis.APIFilter; -import com.axway.apim.adapter.apis.APIFilter.Builder; import com.axway.apim.adapter.apis.APIManagerPoliciesAdapter.PolicyType; import com.axway.apim.api.API; import com.axway.apim.api.export.lib.APIComparator; @@ -240,24 +239,6 @@ private String getFormattedDate(API api) { @Override public APIFilter getFilter() { - Builder builder = getBaseAPIFilterBuilder(); - - switch (params.getWide()) { - case standard: - case wide: - builder.includeQuotas(false); - builder.includeClientApplications(false); - builder.includeClientOrganizations(false); - builder.includeClientAppQuota(false); - builder.includeQuotas(false); - break; - case ultra: - builder.includeQuotas(true); - builder.includeClientAppQuota(false); - builder.includeClientApplications(true); - builder.includeClientOrganizations(true); - break; - } - return builder.build(); + return createFilter(); } } diff --git a/modules/apis/src/main/java/com/axway/apim/api/export/impl/ConsoleAPIExporter.java b/modules/apis/src/main/java/com/axway/apim/api/export/impl/ConsoleAPIExporter.java index 4e6daecc9..95319bb44 100644 --- a/modules/apis/src/main/java/com/axway/apim/api/export/impl/ConsoleAPIExporter.java +++ b/modules/apis/src/main/java/com/axway/apim/api/export/impl/ConsoleAPIExporter.java @@ -2,7 +2,6 @@ import com.axway.apim.adapter.APIManagerAdapter; import com.axway.apim.adapter.apis.APIFilter; -import com.axway.apim.adapter.apis.APIFilter.Builder; import com.axway.apim.adapter.apis.APIManagerPoliciesAdapter.PolicyType; import com.axway.apim.api.API; import com.axway.apim.api.export.lib.params.APIExportParams; @@ -161,7 +160,7 @@ private String getCreatedBy(API api) { private boolean hasTags(API api) { - return (api.getTags() != null && api.getTags().size() != 0); + return (api.getTags() != null && !api.getTags().isEmpty()); } private String getOrgCount(API api) { @@ -185,23 +184,6 @@ private String getSubscribedApplications(API api) { @Override public APIFilter getFilter() { - Builder builder = getBaseAPIFilterBuilder(); - switch (params.getWide()) { - case standard: - case wide: - builder.includeQuotas(false); - builder.includeClientApplications(false); - builder.includeClientOrganizations(false); - builder.includeClientAppQuota(false); - builder.includeQuotas(false); - break; - case ultra: - builder.includeQuotas(true); - builder.includeClientAppQuota(false); - builder.includeClientApplications(true); - builder.includeClientOrganizations(true); - break; - } - return builder.build(); + return createFilter(); } }