From e9b1dfd73a2298cc9679e527ae90a651f5025dd2 Mon Sep 17 00:00:00 2001 From: Jozsef Csongvai Date: Fri, 10 Jan 2020 16:12:08 -0500 Subject: Add uri-encoding to webclient Path params are not uri-encoded, which can cause failed rest calls if resolved params include characters such as whitespace Issue-ID: CCSDK-2024 Change-Id: Iac57219260ac94897e09e3cb9d1d5884d86b83ae Signed-off-by: Jozsef Csongvai --- .../rest/service/BlueprintWebClientService.kt | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) (limited to 'ms/blueprintsprocessor/modules/commons/rest-lib/src') diff --git a/ms/blueprintsprocessor/modules/commons/rest-lib/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/rest/service/BlueprintWebClientService.kt b/ms/blueprintsprocessor/modules/commons/rest-lib/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/rest/service/BlueprintWebClientService.kt index 3c8d92c26..c9c8aab7d 100644 --- a/ms/blueprintsprocessor/modules/commons/rest-lib/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/rest/service/BlueprintWebClientService.kt +++ b/ms/blueprintsprocessor/modules/commons/rest-lib/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/rest/service/BlueprintWebClientService.kt @@ -42,9 +42,11 @@ import org.onap.ccsdk.cds.controllerblueprints.core.utils.BluePrintIOUtils import org.onap.ccsdk.cds.controllerblueprints.core.utils.JacksonUtils import org.springframework.http.HttpHeaders import org.springframework.http.HttpMethod +import org.springframework.web.util.UriUtils import java.io.IOException import java.io.InputStream import java.nio.charset.Charset +import java.nio.charset.StandardCharsets interface BlueprintWebClientService { @@ -92,14 +94,15 @@ interface BlueprintWebClientService { * the difference is in convertToBasicHeaders vs basicHeaders */ val convertedHeaders: Array = convertToBasicHeaders(headers) + val encodedPath = UriUtils.encodePath(path, StandardCharsets.UTF_8.name()) return when (HttpMethod.resolve(methodType)) { - HttpMethod.DELETE -> delete(path, convertedHeaders, String::class.java) - HttpMethod.GET -> get(path, convertedHeaders, String::class.java) - HttpMethod.POST -> post(path, request, convertedHeaders, String::class.java) - HttpMethod.PUT -> put(path, request, convertedHeaders, String::class.java) - HttpMethod.PATCH -> patch(path, request, convertedHeaders, String::class.java) + HttpMethod.DELETE -> delete(encodedPath, convertedHeaders, String::class.java) + HttpMethod.GET -> get(encodedPath, convertedHeaders, String::class.java) + HttpMethod.POST -> post(encodedPath, request, convertedHeaders, String::class.java) + HttpMethod.PUT -> put(encodedPath, request, convertedHeaders, String::class.java) + HttpMethod.PATCH -> patch(encodedPath, request, convertedHeaders, String::class.java) else -> throw BluePrintProcessorException( - "Unsupported methodType($methodType) attempted on path($path)" + "Unsupported methodType($methodType) attempted on path($encodedPath)" ) } } -- cgit 1.2.3-korg