Policy Executor API, make Authorization header optional 10/138410/2
authorToineSiebelink <toine.siebelink@est.tech>
Wed, 10 Jul 2024 08:24:22 +0000 (09:24 +0100)
committerToineSiebelink <toine.siebelink@est.tech>
Wed, 10 Jul 2024 09:04:04 +0000 (10:04 +0100)
Issue-ID: CPS-22291
Change-Id: I2b8f9b97c92dfc640c8b40b7053c609bbdcb2f6e
Signed-off-by: ToineSiebelink <toine.siebelink@est.tech>
docs/api/swagger/policy-executor/openapi.yaml
policy-executor-stub/src/main/java/org/onap/cps/policyexecutor/stub/controller/PolicyExecutorStubController.java
policy-executor-stub/src/test/groovy/org/onap/cps/policyexecutor/stub/controller/PolicyExecutorStubControllerSpec.groovy

index 5becd9a..98c5b1e 100644 (file)
@@ -214,7 +214,7 @@ components:
     authorizationInHeader:
       name: Authorization
       in: header
-      required: true
+      description: "Bearer token may be used to identify client as part of a policy"
       schema:
         type: string
 
index 7989c3f..a5ec6dc 100644 (file)
@@ -41,9 +41,9 @@ public class PolicyExecutorStubController implements PolicyExecutorApi {
 
     @Override
     public ResponseEntity<PolicyExecutionResponse> executePolicyAction(
-                                                     final String authorization,
                                                      final String action,
-                                                     final PolicyExecutionRequest policyExecutionRequest) {
+                                                     final PolicyExecutionRequest policyExecutionRequest,
+                                                     final String authorization) {
         if (policyExecutionRequest.getPayload().isEmpty()) {
             return new ResponseEntity<>(HttpStatus.BAD_REQUEST);
         }
@@ -56,15 +56,19 @@ public class PolicyExecutorStubController implements PolicyExecutorApi {
             return new ResponseEntity<>(HttpStatusCode.valueOf(errorCode));
         }
 
-        final PolicyExecutionResponse policyExecutionResponse = new PolicyExecutionResponse();
-        policyExecutionResponse.setDecisionId(String.valueOf(++decisionCounter));
+        final String decisionId = String.valueOf(++decisionCounter);
+        final String decision;
+        final String message;
 
         if (firstTargetFdn.toLowerCase(Locale.getDefault()).contains("cps-is-great")) {
-            policyExecutionResponse.setDecision("permit");
+            decision = "permit";
+            message = "All good";
         } else {
-            policyExecutionResponse.setDecision("deny");
-            policyExecutionResponse.setMessage("Only FDNs containing 'cps-is-great' are permitted");
+            decision = "deny";
+            message = "Only FDNs containing 'cps-is-great' are permitted";
         }
+        final PolicyExecutionResponse policyExecutionResponse =
+            new PolicyExecutionResponse(decisionId, decision, message);
         return ResponseEntity.ok(policyExecutionResponse);
     }
 }
index 593394f..871db81 100644 (file)
@@ -66,7 +66,7 @@ class PolicyExecutorStubControllerSpec extends Specification {
         where: 'the following targets are used'
             targetFdn               || expectedDecsisonId | expectedDecsison | expectedMessage
             'some fdn'              || '1'                | 'deny'           | "Only FDNs containing 'cps-is-great' are permitted"
-            'fdn with cps-is-great' || '2'                | 'permit'          | null
+            'fdn with cps-is-great' || '2'                | 'permit'         | "All good"
     }
 
     def 'Execute Policy Action with a HTTP Error Code.'() {
@@ -94,8 +94,8 @@ class PolicyExecutorStubControllerSpec extends Specification {
                 .contentType(MediaType.APPLICATION_JSON)
                 .content(requestBody))
                 .andReturn().response
-        then: 'response status is Bad Request'
-            assert response.status == HttpStatus.BAD_REQUEST.value()
+        then: 'response status is OK'
+            assert response.status == HttpStatus.OK.value()
     }
 
     def 'Execute Policy Action with Empty Payload.'() {