diff --git a/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/components/ConfigPolicy.java b/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/components/ConfigPolicy.java
index 63a62d2..adcffe9 100644
--- a/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/components/ConfigPolicy.java
+++ b/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/components/ConfigPolicy.java
@@ -24,18 +24,23 @@
 import java.io.File;
 import java.io.FileWriter;
 import java.io.IOException;
-import java.io.StringReader;
 import java.net.URI;
 import java.net.URISyntaxException;
 import java.nio.file.Path;
 import java.nio.file.Paths;
 import java.util.HashMap;
 import java.util.Map;
-import java.util.Scanner;
 
-import javax.xml.parsers.ParserConfigurationException;
-import javax.xml.parsers.SAXParser;
-import javax.xml.parsers.SAXParserFactory;
+import org.apache.commons.io.FilenameUtils;
+import org.onap.policy.common.logging.eelf.MessageCodes;
+import org.onap.policy.common.logging.eelf.PolicyLogger;
+import org.onap.policy.common.logging.flexlogger.FlexLogger;
+import org.onap.policy.common.logging.flexlogger.Logger;
+import org.onap.policy.rest.adapter.PolicyRestAdapter;
+import org.onap.policy.utils.PolicyUtils;
+
+import com.att.research.xacml.api.pap.PAPException;
+import com.att.research.xacml.std.IdentifierImpl;
 
 import oasis.names.tc.xacml._3_0.core.schema.wd_17.AdviceExpressionType;
 import oasis.names.tc.xacml._3_0.core.schema.wd_17.AdviceExpressionsType;
@@ -51,21 +56,6 @@
 import oasis.names.tc.xacml._3_0.core.schema.wd_17.RuleType;
 import oasis.names.tc.xacml._3_0.core.schema.wd_17.TargetType;
 
-import org.apache.commons.io.FilenameUtils;
-import org.onap.policy.common.logging.eelf.MessageCodes;
-import org.onap.policy.common.logging.eelf.PolicyLogger;
-import org.onap.policy.common.logging.flexlogger.FlexLogger;
-import org.onap.policy.common.logging.flexlogger.Logger;
-import org.onap.policy.rest.adapter.PolicyRestAdapter;
-import org.xml.sax.ErrorHandler;
-import org.xml.sax.InputSource;
-import org.xml.sax.SAXException;
-import org.xml.sax.SAXParseException;
-import org.xml.sax.XMLReader;
-
-import com.att.research.xacml.api.pap.PAPException;
-import com.att.research.xacml.std.IdentifierImpl;
-
 public class ConfigPolicy extends Policy {
 
 	/**
@@ -148,15 +138,15 @@
 		String id = policyAdapter.getConfigType();
 		if (id != null) {
 			if (id.equals(JSON_CONFIG)) {
-				if (!isJSONValid(configBodyData)) {
+				if (!PolicyUtils.isJSONValid(configBodyData)) {
 					isValidForm = false;
 				}
 			} else if (id.equals(XML_CONFIG)) {
-				if (!isXMLValid(configBodyData)) {
+				if (!PolicyUtils.isXMLValid(configBodyData)) {
 					isValidForm = false;
 				}
 			} else if (id.equals(PROPERTIES_CONFIG)) {
-				if (!isPropValid(configBodyData)||configBodyData.equals("")) {
+				if (!PolicyUtils.isPropValid(configBodyData)||configBodyData.equals("")) {
 					isValidForm = false;
 				} 
 			} else if (id.equals(OTHER_CONFIG)) {
@@ -169,68 +159,6 @@
 
 	}
 
-	// Validation for XML.
-	private boolean isXMLValid(String data) {
-
-		SAXParserFactory factory = SAXParserFactory.newInstance();
-		factory.setValidating(false);
-		factory.setNamespaceAware(true);
-		try {
-			SAXParser parser = factory.newSAXParser();
-			XMLReader reader = parser.getXMLReader();
-			reader.setErrorHandler(new XMLErrorHandler());
-			reader.parse(new InputSource(new StringReader(data)));
-		} catch (ParserConfigurationException | SAXException | IOException e) {
-			LOGGER.debug(e);
-			return false;
-		}
-		return true;
-
-	}
-
-	// Validation for Properties file.
-	public boolean isPropValid(String prop) {
-
-		Scanner scanner = new Scanner(prop);
-		while (scanner.hasNextLine()) {
-			String line = scanner.nextLine();
-			line.replaceAll("\\s+", "");
-			if (line.startsWith("#")) {
-				continue;
-			} else {
-				if (line.contains("=")) {
-					String[] parts = line.split("=");
-					if (parts.length < 2) {
-						scanner.close();
-						return false;
-					}
-				} else {
-					scanner.close();
-					return false;
-				}
-			}
-		}
-		scanner.close();
-		return true;
-
-	}
-
-	public class XMLErrorHandler implements ErrorHandler {
-
-		public void warning(SAXParseException e) throws SAXException {
-			System.out.println(e.getMessage());
-		}
-
-		public void error(SAXParseException e) throws SAXException {
-			System.out.println(e.getMessage());
-		}
-
-		public void fatalError(SAXParseException e) throws SAXException {
-			System.out.println(e.getMessage());
-		}
-
-	}
-
 	@Override
 	public Map<String, String> savePolicies() throws PAPException {
 		
diff --git a/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/components/DecisionPolicy.java b/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/components/DecisionPolicy.java
index 6e43c96..eae3e79 100644
--- a/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/components/DecisionPolicy.java
+++ b/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/components/DecisionPolicy.java
@@ -285,7 +285,7 @@
             activeTimeRange.put("end", yamlParams.get("guardActiveEnd"));
 			String blackListString = yamlParams.get("blackList");
 			List<String> blackList = null;
-			if(blackListString!=null){
+            if(blackListString!=null && !blackListString.trim().isEmpty()){
 				if (blackListString.contains(",")){
 					blackList = Arrays.asList(blackListString.split(","));								
 				}
@@ -303,6 +303,9 @@
 				templateFile = new File(classLoader.getResource(XACML_BLGUARD_TEMPLATE).getFile());
 				xacmlTemplatePath = templateFile.toPath();
                 cons.setActive_time_range(activeTimeRange);
+                if(blackList==null || blackList.isEmpty()){
+                    throw new BuilderException("blackList is required");
+                }
                 cons.setBlacklist(blackList);
 				break;
 			default:
diff --git a/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/components/Policy.java b/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/components/Policy.java
index 169e6e1..20c76f3 100644
--- a/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/components/Policy.java
+++ b/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/components/Policy.java
@@ -20,23 +20,17 @@
 
 package org.onap.policy.pap.xacml.rest.components;
 
-import java.io.ByteArrayInputStream;
 import java.io.IOException;
 import java.io.InputStream;
 import java.net.URI;
 import java.net.URISyntaxException;
-import java.nio.charset.StandardCharsets;
 import java.nio.file.Files;
 import java.nio.file.Path;
 import java.nio.file.Paths;
 import java.util.HashMap;
 import java.util.Map;
 
-import javax.json.Json;
-import javax.json.JsonReader;
-
 import org.apache.commons.io.FilenameUtils;
-import org.json.JSONObject;
 import org.onap.policy.common.logging.eelf.MessageCodes;
 import org.onap.policy.common.logging.eelf.PolicyLogger;
 import org.onap.policy.common.logging.flexlogger.FlexLogger;
@@ -202,33 +196,6 @@
 		return dynamicMatch;
 	}
 
-	//validation for numeric
-	protected boolean isNumeric(String str){
-		for (char c : str.toCharArray()){
-			if (!Character.isDigit(c)) return false;
-		}
-		return true;
-	}
-
-	// Validation for json.
-	protected static boolean isJSONValid(String data) {
-		JsonReader jsonReader = null;
-		try {
-		    new JSONObject(data);
-			InputStream stream = new ByteArrayInputStream(data.getBytes(StandardCharsets.UTF_8));
-			jsonReader = Json.createReader(stream);
-			LOGGER.info("Json Value is: " + jsonReader.read().toString() );
-		} catch (Exception e) {
-			LOGGER.error("Exception Occured while reading json"+e);
-			return false;
-		}finally{
-			if(jsonReader != null){
-				jsonReader.close();
-			}
-		}
-		return true;
-	}
-
 	//  the Policy Name as Unique One throws error
 	@SuppressWarnings("static-access")
 	protected Path getNextFilename(Path parent, String policyType, String polcyFileName, Integer version) {
diff --git a/ONAP-PAP-REST/src/main/resources/Decision_GuardBLPolicyTemplate.xml b/ONAP-PAP-REST/src/main/resources/Decision_GuardBLPolicyTemplate.xml
index 19e567d..a8e1b94 100644
--- a/ONAP-PAP-REST/src/main/resources/Decision_GuardBLPolicyTemplate.xml
+++ b/ONAP-PAP-REST/src/main/resources/Decision_GuardBLPolicyTemplate.xml
@@ -15,11 +15,11 @@
                     <AttributeDesignator Category="urn:oasis:names:tc:xacml:1.0:subject-category:access-subject" AttributeId="ONAPName" DataType="http://www.w3.org/2001/XMLSchema#string" MustBePresent="false"/>
                 </Match>
                 <Match MatchId="urn:oasis:names:tc:xacml:1.0:function:string-regexp-match">
-                    <AttributeValue DataType="http://www.w3.org/2001/XMLSchema#string">${actor}</AttributeValue>
+                    <AttributeValue DataType="http://www.w3.org/2001/XMLSchema#string">(?i)${actor}</AttributeValue>
                     <AttributeDesignator Category="urn:oasis:names:tc:xacml:3.0:attribute-category:resource" AttributeId="actor" DataType="http://www.w3.org/2001/XMLSchema#string" MustBePresent="false"/>
                 </Match>
                 <Match MatchId="urn:oasis:names:tc:xacml:1.0:function:string-regexp-match">
-                    <AttributeValue DataType="http://www.w3.org/2001/XMLSchema#string">${recipe}</AttributeValue>
+                    <AttributeValue DataType="http://www.w3.org/2001/XMLSchema#string">(?i)${recipe}</AttributeValue>
                     <AttributeDesignator Category="urn:oasis:names:tc:xacml:3.0:attribute-category:resource" AttributeId="recipe" DataType="http://www.w3.org/2001/XMLSchema#string" MustBePresent="false"/>
                 </Match>
                 <Match MatchId="urn:oasis:names:tc:xacml:1.0:function:string-regexp-match">
diff --git a/ONAP-PAP-REST/src/main/resources/Decision_GuardPolicyTemplate.xml b/ONAP-PAP-REST/src/main/resources/Decision_GuardPolicyTemplate.xml
index ed5b27b..6dee0cb 100644
--- a/ONAP-PAP-REST/src/main/resources/Decision_GuardPolicyTemplate.xml
+++ b/ONAP-PAP-REST/src/main/resources/Decision_GuardPolicyTemplate.xml
@@ -15,11 +15,11 @@
                     <AttributeDesignator Category="urn:oasis:names:tc:xacml:1.0:subject-category:access-subject" AttributeId="ONAPName" DataType="http://www.w3.org/2001/XMLSchema#string" MustBePresent="false"/>
                 </Match>
                 <Match MatchId="urn:oasis:names:tc:xacml:1.0:function:string-regexp-match">
-                    <AttributeValue DataType="http://www.w3.org/2001/XMLSchema#string">${actor}</AttributeValue>
+                    <AttributeValue DataType="http://www.w3.org/2001/XMLSchema#string">(?i)${actor}</AttributeValue>
                     <AttributeDesignator Category="urn:oasis:names:tc:xacml:3.0:attribute-category:resource" AttributeId="actor" DataType="http://www.w3.org/2001/XMLSchema#string" MustBePresent="false"/>
                 </Match>
                 <Match MatchId="urn:oasis:names:tc:xacml:1.0:function:string-regexp-match">
-                    <AttributeValue DataType="http://www.w3.org/2001/XMLSchema#string">${recipe}</AttributeValue>
+                    <AttributeValue DataType="http://www.w3.org/2001/XMLSchema#string">(?i)${recipe}</AttributeValue>
                     <AttributeDesignator Category="urn:oasis:names:tc:xacml:3.0:attribute-category:resource" AttributeId="recipe" DataType="http://www.w3.org/2001/XMLSchema#string" MustBePresent="false"/>
                 </Match>
                 <Match MatchId="urn:oasis:names:tc:xacml:1.0:function:string-regexp-match">
