Authentication support for cdt
[appc/cdt.git] / CdtProxyService / src / main / java / org / onap / appc / cdt / service / controller / CdtController.java
index 78a94f6..bdb12e5 100644 (file)
@@ -1,7 +1,7 @@
 /*
 ============LICENSE_START==========================================
 ===================================================================
-Copyright (C) 2018 AT&T Intellectual Property. All rights reserved.
+Copyright (C) 2018-2020 AT&T Intellectual Property. All rights reserved.
 ===================================================================
 
 Unless otherwise specified, all software contained herein is licensed
@@ -41,6 +41,7 @@ import org.springframework.web.client.RestTemplate;
 
 import java.net.UnknownHostException;
 import java.util.Base64;
+import java.util.List;
 
 /**
  * Created by Amaresh Kumar on 09/May/2018.
@@ -62,11 +63,6 @@ public class CdtController {
     @Value("${restConf.backend.port}")
     private String restConfPort;
 
-    @Value("${restConf.username}")
-    private String restConfUsername;
-
-    @Value("${restConf.password}")
-    private String restConfPassword;
 
     @ApiOperation(value = "Return All Test Data for a given user", response = CdtController.class)
     @ApiResponses(value = {
@@ -87,8 +83,8 @@ public class CdtController {
     })
     @RequestMapping(value = "/getDesigns", method = RequestMethod.POST)
     @CrossOrigin(origins = "*", allowedHeaders = "*")
-    public String getDesigns(@RequestBody String getDesignsRequest) throws UnknownHostException {
-        HttpEntity<String> entity = getStringHttpEntity(getDesignsRequest);
+    public String getDesigns(@RequestBody String getDesignsRequest, @RequestHeader HttpHeaders requestHeader) throws UnknownHostException {
+        HttpEntity<String> entity = getStringHttpEntity(getDesignsRequest, requestHeader);
         HttpClient httpClient = HttpClientBuilder.create().build();
         ClientHttpRequestFactory factory = new HttpComponentsClientHttpRequestFactory(httpClient);
         restTemplate.setRequestFactory(factory);
@@ -103,8 +99,8 @@ public class CdtController {
     })
     @RequestMapping(value = "/testVnf", method = RequestMethod.POST)
     @CrossOrigin(origins = "*", allowedHeaders = "*")
-    public String testVnf(@RequestParam String urlAction, @RequestBody String testVnf) throws UnknownHostException {
-        HttpEntity<String> entity = getStringHttpEntity(testVnf);
+    public String testVnf(@RequestParam String urlAction, @RequestBody String testVnf, @RequestHeader HttpHeaders requestHeader) throws UnknownHostException {
+        HttpEntity<String> entity = getStringHttpEntity(testVnf, requestHeader);
         String testVnfResponse = restTemplate.postForObject(getUrl("testVnf")+urlAction, entity, String.class);
         return testVnfResponse;
     }
@@ -116,8 +112,8 @@ public class CdtController {
     })
     @RequestMapping(value = "/checkTestStatus", method = RequestMethod.POST)
     @CrossOrigin(origins = "*", allowedHeaders = "*")
-    public String checkTestStatus(@RequestBody String checkTestStatusRequest) throws UnknownHostException {
-        HttpEntity<String> entity = getStringHttpEntity(checkTestStatusRequest);
+    public String checkTestStatus(@RequestBody String checkTestStatusRequest, @RequestHeader HttpHeaders requestHeader) throws UnknownHostException {
+        HttpEntity<String> entity = getStringHttpEntity(checkTestStatusRequest, requestHeader);
         String checkTestStatusResponse = restTemplate.postForObject(getUrl("checkTestStatus"), entity, String.class);
         return checkTestStatusResponse;
     }
@@ -129,19 +125,23 @@ public class CdtController {
     })
     @RequestMapping(value = "/validateTemplate", method = RequestMethod.POST)
     @CrossOrigin(origins = "*", allowedHeaders = "*")
-    public String validateTemplate(@RequestBody String validateTemplateRequest) throws UnknownHostException {
-        HttpEntity<String> entity = getStringHttpEntity(validateTemplateRequest);
+    public String validateTemplate(@RequestBody String validateTemplateRequest, @RequestHeader HttpHeaders requestHeader) throws UnknownHostException {
+        HttpEntity<String> entity = getStringHttpEntity(validateTemplateRequest, requestHeader);
         String validateTemplateResponse = restTemplate.postForObject(getUrl("validateTemplate"), entity, String.class);
         return validateTemplateResponse;
     }
 
-    private HttpEntity<String> getStringHttpEntity(@RequestBody String getDesignsRequest) {
+    private HttpEntity<String> getStringHttpEntity(@RequestBody String getDesignsRequest, @RequestHeader HttpHeaders requestHeader) {
+
         HttpHeaders headers = new HttpHeaders();
+        if(requestHeader.containsKey("authorization")) {
+          List<String> headerAuthValue = requestHeader.get("authorization");
+          if(headerAuthValue != null && headerAuthValue.size() > 0) {
+              headers.set("authorization", headerAuthValue.get(0));
+          }
+      }
         headers.setAccessControlAllowCredentials(true);
         headers.setContentType(MediaType.APPLICATION_JSON);
-        String planCredentials = restConfUsername + ":" + restConfPassword;
-        String base64Credentails = Base64.getEncoder().encodeToString(planCredentials.getBytes());
-        headers.set("Authorization", "Basic " + base64Credentails);
         return new HttpEntity<String>(getDesignsRequest, headers);
     }