@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);
}
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);
}
}
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.'() {
.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.'() {