X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=ONAP-PDP-REST%2Fsrc%2Fmain%2Fjava%2Forg%2Fonap%2Fpolicy%2Fpdp%2Frest%2Fapi%2Futils%2FPolicyApiUtils.java;h=47b6efb2a315960f33a39bdddee085b2f0ab4f8c;hb=06d41227e6e745cf9dfbe8df2b29fd67992060da;hp=cd107d0baacfd53ed510b6dac313c9a99f4c19db;hpb=073cc188efe9abb4c010cf674e34e2cf46ef1c52;p=policy%2Fengine.git
diff --git a/ONAP-PDP-REST/src/main/java/org/onap/policy/pdp/rest/api/utils/PolicyApiUtils.java b/ONAP-PDP-REST/src/main/java/org/onap/policy/pdp/rest/api/utils/PolicyApiUtils.java
index cd107d0ba..47b6efb2a 100644
--- a/ONAP-PDP-REST/src/main/java/org/onap/policy/pdp/rest/api/utils/PolicyApiUtils.java
+++ b/ONAP-PDP-REST/src/main/java/org/onap/policy/pdp/rest/api/utils/PolicyApiUtils.java
@@ -22,6 +22,7 @@ package org.onap.policy.pdp.rest.api.utils;
import java.io.StringReader;
import javax.json.Json;
+import javax.json.JsonArray;
import javax.json.JsonException;
import javax.json.JsonObject;
import javax.json.JsonReader;
@@ -29,13 +30,17 @@ import javax.json.stream.JsonParsingException;
import org.onap.policy.common.logging.flexlogger.FlexLogger;
import org.onap.policy.common.logging.flexlogger.Logger;
+import org.onap.policy.utils.PolicyUtils;
+import org.onap.policy.xacml.api.XACMLErrorConstants;
import com.google.common.base.CharMatcher;
public class PolicyApiUtils {
private static Logger LOGGER = FlexLogger.getLogger(PolicyApiUtils.class
.getName());
+ private static final String SUCCESS = "success";
+
public static Boolean validateNONASCIICharactersAndAllowSpaces(
String jsonString) {
Boolean isValidForm = false;
@@ -43,7 +48,7 @@ public class PolicyApiUtils {
LOGGER.error("The Value is empty.");
return false;
} else {
- if (CharMatcher.ASCII.matchesAllOf((CharSequence) jsonString)) {
+ if (CharMatcher.ascii().matchesAllOf((CharSequence) jsonString)) {
LOGGER.info("The Value does not contain ASCII Characters");
isValidForm = true;
} else {
@@ -53,7 +58,16 @@ public class PolicyApiUtils {
}
return isValidForm;
}
-
+
+ public static String formatResponse(StringBuilder responseString){
+
+ LOGGER.info("Formatting response message from Policy Validator");
+ String response = responseString.toString().replace("
", " | ");
+ response = response.replaceAll("(|<\\/b>|
||<\\/i>|@#)", "");
+
+ return response;
+ }
+
public static boolean isNumeric(String str) {
for (char c : str.toCharArray()) {
if (!Character.isDigit(c))
@@ -69,4 +83,105 @@ public class PolicyApiUtils {
jsonReader.close();
return object;
}
+
+ public static String validateDictionaryJsonFields(JsonObject json, String dictionary) {
+
+ LOGGER.info("Validating DictionaryJsonField values");
+ String message;
+
+ if("Action".equals(dictionary.trim())){
+ if(json.containsKey("attributeName")){
+ if(json.getString("attributeName")==null || json.getString("attributeName").trim().isEmpty()){
+ message = XACMLErrorConstants.ERROR_DATA_ISSUE + "No Attribute Name provided.";
+ return message;
+ }
+ if(!SUCCESS.equals(PolicyUtils.policySpecialCharValidator(json.getString("attributeName").trim()))){
+ message = XACMLErrorConstants.ERROR_DATA_ISSUE + "Invalid Attribute Name value.";
+ return message;
+ }
+ }else{
+ message = XACMLErrorConstants.ERROR_DATA_ISSUE + "Missing attributeName key in the dictionaryJson parameter.";
+ return message;
+ }
+ if(json.containsKey("type")){
+ if(json.getString("type")==null || json.getString("type").trim().isEmpty()){
+ message = XACMLErrorConstants.ERROR_DATA_ISSUE + "No Type provided.";
+ return message;
+ }
+ if(!"REST".equals(json.getString("type").trim())){
+ message = XACMLErrorConstants.ERROR_DATA_ISSUE + "Invalid Type value.";
+ return message;
+ }
+ }else{
+ message = XACMLErrorConstants.ERROR_DATA_ISSUE + "Missing type key in the dictionaryJson parameter.";
+ return message;
+ }
+ if(json.containsKey("method")){
+ if(json.getString("method")==null || json.getString("method").trim().isEmpty()){
+ message = XACMLErrorConstants.ERROR_DATA_ISSUE + "No Method provided.";
+ return message;
+ }
+ if("GET".equals(json.getString("method").trim())
+ || "PUT".equals(json.getString("method").trim())
+ || "POST".equals(json.getString("method").trim())){
+
+ //Successful Validation
+
+ }else{
+ message = XACMLErrorConstants.ERROR_DATA_ISSUE + "Invalid Method value.";
+ return message;
+ }
+ }else{
+ message = XACMLErrorConstants.ERROR_DATA_ISSUE + "Missing method key in the dictionaryJson parameter.";
+ return message;
+ }
+ if(json.containsKey("url")){
+ if(json.getString("url")==null || json.getString("url").trim().isEmpty()){
+ message = XACMLErrorConstants.ERROR_DATA_ISSUE + "No URL provided.";
+ return message;
+ }
+ }else{
+ message = XACMLErrorConstants.ERROR_DATA_ISSUE + "Missing url key in the dictionaryJson parameter.";
+ return message;
+ }
+ if(json.containsKey("body")){
+ if(json.getString("body")==null || json.getString("body").trim().isEmpty()){
+ message = XACMLErrorConstants.ERROR_DATA_ISSUE + "No Body provided.";
+ return message;
+ }
+ }else{
+ message = XACMLErrorConstants.ERROR_DATA_ISSUE + "Missing body key in the dictionaryJson parameter.";
+ return message;
+ }
+ if(json.containsKey("headers")){
+ JsonArray array = json.getJsonArray("headers");
+
+ for (int i = 0;i