diff options
author | Jozsef Csongvai <jozsef.csongvai@bell.ca> | 2020-05-19 09:16:46 -0400 |
---|---|---|
committer | Dan Timoney <dtimoney@att.com> | 2020-05-19 16:31:30 +0000 |
commit | fc54a5c7bbea73399f9fc45d8145aa929eb8ff46 (patch) | |
tree | 5b246ab46456d8a17755b072ce7015991c2c4d3d | |
parent | caf0a0dc5adf6a24ba2b0306422ffebe53e3b3b7 (diff) |
Fix incorrect encoding for query params
Issue-ID: CCSDK-2380
Signed-off-by: Jozsef Csongvai <jozsef.csongvai@bell.ca>
Change-Id: I3a49f2c5a3a29383e43e2a4a3d6a9c13a9f933c2
(cherry picked from commit 1910b2b7879712ccac56580e8996a700f6dcec43)
2 files changed, 37 insertions, 1 deletions
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 c9c8aab7d..11f6dc7e3 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 @@ -94,7 +94,7 @@ interface BlueprintWebClientService { * the difference is in convertToBasicHeaders vs basicHeaders */ val convertedHeaders: Array<BasicHeader> = convertToBasicHeaders(headers) - val encodedPath = UriUtils.encodePath(path, StandardCharsets.UTF_8.name()) + val encodedPath = UriUtils.encodeQuery(path, StandardCharsets.UTF_8.name()) return when (HttpMethod.resolve(methodType)) { HttpMethod.DELETE -> delete(encodedPath, convertedHeaders, String::class.java) HttpMethod.GET -> get(encodedPath, convertedHeaders, String::class.java) diff --git a/ms/blueprintsprocessor/modules/commons/rest-lib/src/test/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/rest/service/RestClientServiceTest.kt b/ms/blueprintsprocessor/modules/commons/rest-lib/src/test/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/rest/service/RestClientServiceTest.kt index fa357e1fe..71f8cd753 100644 --- a/ms/blueprintsprocessor/modules/commons/rest-lib/src/test/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/rest/service/RestClientServiceTest.kt +++ b/ms/blueprintsprocessor/modules/commons/rest-lib/src/test/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/rest/service/RestClientServiceTest.kt @@ -51,10 +51,12 @@ import org.springframework.test.context.junit4.SpringRunner import org.springframework.web.bind.annotation.DeleteMapping import org.springframework.web.bind.annotation.GetMapping import org.springframework.web.bind.annotation.PatchMapping +import org.springframework.web.bind.annotation.PathVariable import org.springframework.web.bind.annotation.PostMapping import org.springframework.web.bind.annotation.PutMapping import org.springframework.web.bind.annotation.RequestHeader import org.springframework.web.bind.annotation.RequestMapping +import org.springframework.web.bind.annotation.RequestParam import org.springframework.web.bind.annotation.RestController import kotlin.test.assertEquals import kotlin.test.assertNotNull @@ -115,6 +117,32 @@ class RestClientServiceTest { } @Test + fun testGetQueryParam() { + val restClientService = bluePrintRestLibPropertyService + .blueprintWebClientService("sample") + val response = restClientService.exchangeResource( + HttpMethod.GET.name, "/sample/query?id=3", "" + ) + assertEquals( + "query with id:3", response.body, + "failed to get query param response" + ) + } + + @Test + fun testGetPathParamWithWhitespace() { + val restClientService = bluePrintRestLibPropertyService + .blueprintWebClientService("sample") + val response = restClientService.exchangeResource( + HttpMethod.GET.name, "/sample/path/id 3/get", "" + ) + assertEquals( + "path param id:id 3", response.body, + "failed to get query param response" + ) + } + + @Test fun testPatch() { val restClientService = bluePrintRestLibPropertyService .blueprintWebClientService("sample") @@ -277,6 +305,14 @@ open class SampleController { @GetMapping("/name") fun getName(): String = "Sample Controller" + @GetMapping("/query") + fun getQuery(@RequestParam("id") id: String): String = + "query with id:$id" + + @GetMapping("/path/{id}/get") + fun getPathParam(@PathVariable("id") id: String): String = + "path param id:$id" + @PatchMapping("/name") fun patchName(): String = "Patch request successful" |