From 3f1933cfe1f5cdb6d3fefdff9248c9d4430849c2 Mon Sep 17 00:00:00 2001 From: Michael Mokry Date: Fri, 1 Dec 2017 11:39:27 -0600 Subject: Modified the code to fix various pushPolicy issues - Added modifications per Pam's review Change-Id: I5d67ee529cbc5245e7d1f8dbec6f2f2d453ce299 Issue-ID: POLICY-486 Signed-off-by: Michael Mokry (cherry picked from commit b6bae924c4a794cd772ac1524089fc8739e310b1) --- .../services/CreateUpdateDictionaryService.java | 31 +++++++++++++++------- 1 file changed, 22 insertions(+), 9 deletions(-) (limited to 'ONAP-PDP-REST/src/main/java/org/onap/policy/pdp/rest/api/services/CreateUpdateDictionaryService.java') diff --git a/ONAP-PDP-REST/src/main/java/org/onap/policy/pdp/rest/api/services/CreateUpdateDictionaryService.java b/ONAP-PDP-REST/src/main/java/org/onap/policy/pdp/rest/api/services/CreateUpdateDictionaryService.java index 9d2577426..5f6a4fc90 100644 --- a/ONAP-PDP-REST/src/main/java/org/onap/policy/pdp/rest/api/services/CreateUpdateDictionaryService.java +++ b/ONAP-PDP-REST/src/main/java/org/onap/policy/pdp/rest/api/services/CreateUpdateDictionaryService.java @@ -41,6 +41,7 @@ public class CreateUpdateDictionaryService { private String message = null; private Boolean updateFlag = false; private DictionaryParameters dictionaryParameters = null; + private JsonObject json = null; public CreateUpdateDictionaryService( DictionaryParameters dictionaryParameters, String requestID, @@ -62,6 +63,7 @@ public class CreateUpdateDictionaryService { } this.dictionaryParameters.setRequestID(requestUUID); } + try{ run(); specialCheck(); @@ -105,20 +107,14 @@ public class CreateUpdateDictionaryService { } else { operation = "create"; } - JsonObject json = null; - try{ - json = PolicyApiUtils.stringToJsonObject(dictionaryParameters.getDictionaryJson()); - } catch(JsonException| IllegalStateException e){ - message = XACMLErrorConstants.ERROR_DATA_ISSUE+ " improper Dictionary JSON object : " + dictionaryParameters.getDictionaryJson(); - LOGGER.error(message, e); - return message; - } + String dictionaryFields = json.toString(); PAPServices papServices = new PAPServices(); return (String) papServices.callPAP(new ByteArrayInputStream(dictionaryFields.getBytes()), new String[] {"operation="+operation, "apiflag=api", "dictionaryType="+dictionaryParameters.getDictionary()}, dictionaryParameters.getRequestID(), "dictionaryItem"); } private boolean getValidation() { + LOGGER.info("Start validating create or update dictionary request."); if(dictionaryParameters==null){ message = XACMLErrorConstants.ERROR_DATA_ISSUE + "Dictionary Parameters are not given."; return false; @@ -134,11 +130,28 @@ public class CreateUpdateDictionaryService { if(dictionaryParameters.getDictionaryJson()==null || dictionaryParameters.getDictionaryJson().isEmpty()){ message = XACMLErrorConstants.ERROR_DATA_ISSUE + "No Dictionary JSON given."; return false; - } + } if (updateFlag && "MicroServiceDictionary".equalsIgnoreCase(dictionaryParameters.getDictionary())&& !dictionaryParameters.getDictionaryJson().contains("initialFields")){ message = XACMLErrorConstants.ERROR_DATA_ISSUE + "Mising the required field initialFields."; return false; } + + try{ + json = PolicyApiUtils.stringToJsonObject(dictionaryParameters.getDictionaryJson()); + String result = PolicyApiUtils.validateDictionaryJsonFields(json.getJsonObject("dictionaryFields"), dictionaryParameters.getDictionary()); + + if(!"success".equals(result)) { + message = result; + return false; + } + + }catch(JsonException| IllegalStateException e){ + message = XACMLErrorConstants.ERROR_DATA_ISSUE+ " improper Dictionary JSON object : " + dictionaryParameters.getDictionaryJson(); + LOGGER.error(message, e); + return false; + } + + LOGGER.info("dictionary API request validation complete and valid."); return true; } -- cgit 1.2.3-korg