Remove trust all for BasicAuthRestClientService
[ccsdk/cds.git] / ms / blueprintsprocessor / modules / commons / rest-lib / src / main / kotlin / org / onap / ccsdk / cds / blueprintsprocessor / rest / service / BasicAuthRestClientService.kt
index 3190cd1..be9b849 100644 (file)
@@ -20,47 +20,55 @@ import org.apache.http.message.BasicHeader
 import org.onap.ccsdk.cds.blueprintsprocessor.rest.BasicAuthRestClientProperties
 import org.springframework.http.HttpHeaders
 import org.springframework.http.MediaType
+import java.net.URI
 import java.nio.charset.Charset
-import java.util.*
+import java.util.Base64
 
-class BasicAuthRestClientService(private val restClientProperties:
-                                 BasicAuthRestClientProperties) :
-        BlueprintWebClientService {
+class BasicAuthRestClientService(
+    private val restClientProperties:
+        BasicAuthRestClientProperties
+) :
+    BlueprintWebClientService {
 
     override fun defaultHeaders(): Map<String, String> {
 
-        val encodedCredentials = setBasicAuth(restClientProperties.username,
-                restClientProperties.password)
+        val encodedCredentials = setBasicAuth(
+            restClientProperties.username,
+            restClientProperties.password
+        )
         return mapOf(
-                HttpHeaders.CONTENT_TYPE to MediaType.APPLICATION_JSON_VALUE,
-                HttpHeaders.ACCEPT to MediaType.APPLICATION_JSON_VALUE,
-                HttpHeaders.AUTHORIZATION to "Basic $encodedCredentials")
+            HttpHeaders.CONTENT_TYPE to MediaType.APPLICATION_JSON_VALUE,
+            HttpHeaders.ACCEPT to MediaType.APPLICATION_JSON_VALUE,
+            HttpHeaders.AUTHORIZATION to "Basic $encodedCredentials"
+        )
     }
 
     override fun host(uri: String): String {
-        return restClientProperties.url + uri
+        val uri: URI = URI.create(restClientProperties.url + uri)
+        return uri.resolve(uri).toString()
     }
 
     override fun convertToBasicHeaders(headers: Map<String, String>):
-            Array<BasicHeader> {
+        Array<BasicHeader> {
+            val customHeaders: MutableMap<String, String> = headers.toMutableMap()
+            // inject additionalHeaders
+            customHeaders.putAll(verifyAdditionalHeaders(restClientProperties))
 
-        val customHeaders: MutableMap<String, String> = headers.toMutableMap()
-        if (!headers.containsKey(HttpHeaders.AUTHORIZATION)) {
-            val encodedCredentials = setBasicAuth(
+            if (!headers.containsKey(HttpHeaders.AUTHORIZATION)) {
+                val encodedCredentials = setBasicAuth(
                     restClientProperties.username,
-                    restClientProperties.password)
-            customHeaders[HttpHeaders.AUTHORIZATION] =
+                    restClientProperties.password
+                )
+                customHeaders[HttpHeaders.AUTHORIZATION] =
                     "Basic $encodedCredentials"
+            }
+            return super.convertToBasicHeaders(customHeaders)
         }
-        return super.convertToBasicHeaders(customHeaders)
-    }
 
     private fun setBasicAuth(username: String, password: String): String {
-
         val credentialsString = "$username:$password"
         return Base64.getEncoder().encodeToString(
-                credentialsString.toByteArray(Charset.defaultCharset()))
+            credentialsString.toByteArray(Charset.defaultCharset())
+        )
     }
-
-
-}
\ No newline at end of file
+}