Ability to disable sending auth header 34/135634/6
authormpriyank <priyank.maheshwari@est.tech>
Tue, 1 Aug 2023 14:36:27 +0000 (15:36 +0100)
committerPriyank Maheshwari <priyank.maheshwari@est.tech>
Fri, 4 Aug 2023 09:04:40 +0000 (09:04 +0000)
- introduced configurable parameter to disable sending auth header in
  the request to dmi-plugin
- default is to include the auth header
- DMI_AUTH_ENABLED flag can be set to true/false to control the
  behaviour
- Also added the env variables to the CSITs
- updated release-notes

Issue-ID: CPS-1819
Change-Id: If97c06e33f06e391d2190b7300d73210ed2f4e27
Signed-off-by: mpriyank <priyank.maheshwari@est.tech>
cps-application/src/main/resources/application.yml
cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/impl/client/DmiRestClient.java
cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/impl/config/NcmpConfiguration.java
cps-ncmp-service/src/test/groovy/org/onap/cps/ncmp/api/impl/client/DmiRestClientSpec.groovy
cps-ncmp-service/src/test/resources/application.yml
csit/plans/cps/setup.sh
csit/plans/cps/test.properties
docs/release-notes.rst

index 47592b4..a18de2a 100644 (file)
@@ -174,6 +174,7 @@ ncmp:
         auth:
             username: ${DMI_USERNAME}
             password: ${DMI_PASSWORD}
+            enabled: ${DMI_AUTH_ENABLED:true}
         api:
             base-path: dmi
 
index 136935b..28e09ac 100644 (file)
@@ -61,7 +61,9 @@ public class DmiRestClient {
     }
 
     private HttpHeaders configureHttpHeaders(final HttpHeaders httpHeaders) {
-        httpHeaders.setBasicAuth(dmiProperties.getAuthUsername(), dmiProperties.getAuthPassword());
+        if (dmiProperties.isDmiBasicAuthEnabled()) {
+            httpHeaders.setBasicAuth(dmiProperties.getAuthUsername(), dmiProperties.getAuthPassword());
+        }
         httpHeaders.setContentType(MediaType.APPLICATION_JSON);
         return httpHeaders;
     }
index 6decaf8..ffecf9c 100644 (file)
@@ -52,6 +52,8 @@ public class NcmpConfiguration {
         private String authPassword;
         @Value("${ncmp.dmi.api.base-path}")
         private String dmiBasePath;
+        @Value("${ncmp.dmi.auth.enabled}")
+        private boolean dmiBasicAuthEnabled;
     }
 
     /**
index 6b0355e..0d03fd9 100644 (file)
@@ -27,6 +27,7 @@ import org.spockframework.spring.SpringBean
 import org.springframework.beans.factory.annotation.Autowired
 import org.springframework.boot.test.context.SpringBootTest
 import org.springframework.http.HttpEntity
+import org.springframework.http.HttpHeaders
 import org.springframework.http.HttpStatus
 import org.springframework.http.ResponseEntity
 import org.springframework.test.context.ContextConfiguration
@@ -50,6 +51,13 @@ class DmiRestClientSpec extends Specification {
     def resourceUrl = 'some url'
 
     def mockResponseEntity = Mock(ResponseEntity)
+    def dmiProperties = new NcmpConfiguration.DmiProperties()
+
+    def setup() {
+        dmiProperties.authUsername = 'test user'
+        dmiProperties.authPassword = 'test pass'
+        dmiProperties.dmiBasePath = 'dmi'
+    }
 
     def 'DMI POST operation with JSON.'() {
         given: 'the rest template returns a valid response entity'
@@ -77,4 +85,16 @@ class DmiRestClientSpec extends Specification {
             operation << [CREATE, READ, PATCH]
     }
 
+    def 'Basic auth header #scenario'() {
+        when: 'Specific dmi properties are provided'
+            dmiProperties.dmiBasicAuthEnabled = authEnabled
+            objectUnderTest.dmiProperties = dmiProperties
+        then: 'http headers to conditionally have Authorization header'
+            assert (objectUnderTest.configureHttpHeaders(new HttpHeaders()).get('Authorization') != null) == isPresentInHttpHeader
+        where: 'the following configurations are used'
+            scenario        | authEnabled || isPresentInHttpHeader
+            'auth enabled'  | true        || true
+            'auth disabled' | false       || false
+    }
+
 }
index 7442670..6e7577b 100644 (file)
@@ -39,6 +39,7 @@ ncmp:
         auth:
             username: some-user
             password: some-password
+            enabled: true
         api:
             base-path: dmi
 
index 269d3cb..bdea019 100755 (executable)
@@ -129,4 +129,4 @@ check_health $DMI_HOST:$DMI_MANAGEMENT_PORT 'dmi-plugin'
 
 ###################### ROBOT Configurations ##########################
 # Pass variables required for Robot test suites in ROBOT_VARIABLES
-ROBOT_VARIABLES="-v CPS_CORE_HOST:$CPS_CORE_HOST -v CPS_CORE_PORT:$CPS_CORE_PORT -v DMI_HOST:$LOCAL_IP -v DMI_PORT:$DMI_PORT -v DMI_CSIT_STUB_HOST:$LOCAL_IP -v DMI_CSIT_STUB_PORT:$DMI_DEMO_STUB_PORT -v CPS_CORE_MANAGEMENT_PORT:$CPS_CORE_MANAGEMENT_PORT -v DATADIR:$WORKSPACE/data --exitonfailure"
+ROBOT_VARIABLES="-v CPS_CORE_HOST:$CPS_CORE_HOST -v CPS_CORE_PORT:$CPS_CORE_PORT -v DMI_HOST:$LOCAL_IP -v DMI_PORT:$DMI_PORT -v DMI_CSIT_STUB_HOST:$LOCAL_IP -v DMI_CSIT_STUB_PORT:$DMI_DEMO_STUB_PORT -v DMI_AUTH_ENABLED:$DMI_AUTH_ENABLED -v CPS_CORE_MANAGEMENT_PORT:$CPS_CORE_MANAGEMENT_PORT -v DATADIR:$WORKSPACE/data --exitonfailure"
index 474a718..b3dcf05 100644 (file)
@@ -32,3 +32,5 @@ CPS_HOME=$CPS_HOME
 
 DMI_DEMO_STUB_PORT=8784
 DMI_DEMO_STUB_VERSION=latest
+
+DMI_AUTH_ENABLED=true
index 66dde1c..cd70cf8 100755 (executable)
@@ -43,6 +43,7 @@ Bug Fixes
 Features
 --------
     - `CPS-1696 <https://jira.onap.org/browse/CPS-1696>`_ Get Data Node to return entire List data node.
+    - `CPS-1819 <https://jira.onap.org/browse/CPS-1819>`_ Ability to disable sending authorization header.
 
 
 Version: 3.3.5