package org.onap.policy.pap.xacml.rest.policycontroller;
import java.io.File;
+import java.util.Date;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.LinkedList;
policyVersionDao.setActiveVersion(version);
policyVersionDao.setHigherVersion(version);
policyVersionDao.setModifiedBy(modifiedBy);
+ policyVersionDao.setModifiedDate(new Date());
}else{
body = "policyExists";
status = HttpStatus.CONFLICT;
return new ResponseEntity<String>(body, status);
}
}else{
+ // if policy does not exist and the request is updatePolicy return error
+ if(policyData.isEditPolicy()){
+ body = "policyNotAvailableForEdit";
+ status = HttpStatus.NOT_FOUND;
+ response.setStatus(HttpServletResponse.SC_NOT_FOUND);
+ response.addHeader("error", body);
+ response.addHeader("message", policyData.getPolicyName() + " does not exist on the PAP and cannot be updated.");
+ return new ResponseEntity<>(body, status);
+ }
version = 1;
if(userId == null){
createdBy = "API";
policyData.setRuleCombiningAlgId("urn:oasis:names:tc:xacml:3.0:rule-combining-algorithm:permit-overrides");
if(policyData.getApiflag() == null){
//set the Rule Combining Algorithm Id to be sent to PAP-REST via JSON
- if(policyData.getAttributes() != null){
- if(policyData.getAttributes().size() > 0){
- for(Object attribute : policyData.getAttributes()){
- if(attribute instanceof LinkedHashMap<?, ?>){
- String key = ((LinkedHashMap<?, ?>) attribute).get("key").toString();
- String value = ((LinkedHashMap<?, ?>) attribute).get("value").toString();
- attributeMap.put(key, value);
- }
+ if(policyData.getAttributes() != null && !policyData.getAttributes().isEmpty()){
+ for(Object attribute : policyData.getAttributes()){
+ if(attribute instanceof LinkedHashMap<?, ?>){
+ String key = ((LinkedHashMap<?, ?>) attribute).get("key").toString();
+ String value = ((LinkedHashMap<?, ?>) attribute).get("value").toString();
+ attributeMap.put(key, value);
}
}
}
List<String> dynamicRuleAlgorithmField2 = new LinkedList<>();
- if(policyData.getRuleAlgorithmschoices().size() > 0){
+ if(!policyData.getRuleAlgorithmschoices().isEmpty()){
for(Object attribute : policyData.getRuleAlgorithmschoices()){
if(attribute instanceof LinkedHashMap<?, ?>){
String label = ((LinkedHashMap<?, ?>) attribute).get("id").toString();
String actionDictValue = policyData.getActionAttributeValue();
ActionPolicyDict jsonData = ((ActionPolicyDict) commonClassDao.getEntityItem(ActionPolicyDict.class, "attributeName", actionDictValue));
- String actionBodyString = jsonData.getBody();
- String actionDictHeader = jsonData.getHeader();
- String actionDictType = jsonData.getType();
- String actionDictUrl = jsonData.getUrl();
- String actionDictMethod = jsonData.getMethod();
- policyData.setActionDictHeader(actionDictHeader);
- policyData.setActionDictType(actionDictType);
- policyData.setActionDictUrl(actionDictUrl);
- policyData.setActionDictMethod(actionDictMethod);
+ if(jsonData!=null){
+ String actionBodyString = jsonData.getBody();
+ String actionDictHeader = jsonData.getHeader();
+ String actionDictType = jsonData.getType();
+ String actionDictUrl = jsonData.getUrl();
+ String actionDictMethod = jsonData.getMethod();
+ policyData.setActionDictHeader(actionDictHeader);
+ policyData.setActionDictType(actionDictType);
+ policyData.setActionDictUrl(actionDictUrl);
+ policyData.setActionDictMethod(actionDictMethod);
+ if (actionBodyString != null) {
+ policyData.setActionBody(actionBodyString);
+ }
+ }
policyData.setActionAttribute(actionDictValue);
policyData.setDynamicRuleAlgorithmLabels(dynamicRuleAlgorithmLabels);
policyData.setDynamicRuleAlgorithmCombo(dynamicRuleAlgorithmCombo);
policyData.setDynamicRuleAlgorithmField1(dynamicRuleAlgorithmField1);
policyData.setDynamicRuleAlgorithmField2(dynamicRuleAlgorithmField2);
- if (actionBodyString != null) {
- policyData.setActionBody(actionBodyString);
+ }else{
+ // API request.
+ String comboDictValue = policyData.getActionAttribute();
+ ActionPolicyDict jsonData = ((ActionPolicyDict) commonClassDao.getEntityItem(ActionPolicyDict.class, "attributeName", comboDictValue));
+ if(jsonData!=null){
+ policyData.setActionBody(jsonData.getBody());
+ policyData.setActionDictHeader(jsonData.getHeader());
+ policyData.setActionDictType(jsonData.getType());
+ policyData.setActionDictUrl(jsonData.getUrl());
+ policyData.setActionDictMethod(jsonData.getMethod());
}
}
newPolicy = new ActionPolicy(policyData);