diff options
Diffstat (limited to 'ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/components/SafePolicyBuilder.java')
-rw-r--r-- | ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/components/SafePolicyBuilder.java | 100 |
1 files changed, 50 insertions, 50 deletions
diff --git a/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/components/SafePolicyBuilder.java b/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/components/SafePolicyBuilder.java index ba5b0026a..7a0f708d8 100644 --- a/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/components/SafePolicyBuilder.java +++ b/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/components/SafePolicyBuilder.java @@ -30,57 +30,57 @@ import org.yaml.snakeyaml.Yaml; import org.yaml.snakeyaml.constructor.Constructor; public class SafePolicyBuilder { - - private SafePolicyBuilder(){ - //Private Constructor. - } - public static ControlLoopGuard loadYamlGuard(String specification) { - // - // Read the yaml into our Java Object - // - PolicyLogger.info("Requested YAML to convert : " + specification); - Yaml yaml = new Yaml(new Constructor(ControlLoopGuard.class)); - Object obj = yaml.load(specification); - return (ControlLoopGuard) obj; - } - - public static String generateXacmlGuard(String xacmlFileContent,Map<String, String> generateMap, List<String> blacklist, List<String> targets) { - //Setup default values and Targets. - StringBuilder targetRegex= new StringBuilder(".*|"); - if(targets!=null && !targets.isEmpty()){ - targetRegex = new StringBuilder(); + private SafePolicyBuilder(){ + //Private Constructor. + } + + public static ControlLoopGuard loadYamlGuard(String specification) { + // + // Read the yaml into our Java Object + // + PolicyLogger.info("Requested YAML to convert : " + specification); + Yaml yaml = new Yaml(new Constructor(ControlLoopGuard.class)); + Object obj = yaml.load(specification); + return (ControlLoopGuard) obj; + } + + public static String generateXacmlGuard(String xacmlFileContent,Map<String, String> generateMap, List<String> blacklist, List<String> targets) { + //Setup default values and Targets. + StringBuilder targetRegex= new StringBuilder(".*|"); + if(targets!=null && !targets.isEmpty()){ + targetRegex = new StringBuilder(); for(String t : targets){ - targetRegex.append(t + "|"); + targetRegex.append(t + "|"); + } + } + if(generateMap.get("clname")==null|| generateMap.get("clname").isEmpty()){ + generateMap.put("clname",".*"); + } + generateMap.put("targets", targetRegex.toString().substring(0, targetRegex.length()-1)); + // Replace values. + for(Map.Entry<String,String> map: generateMap.entrySet()){ + Pattern p = Pattern.compile("\\$\\{" +map.getKey() +"\\}"); + Matcher m = p.matcher(xacmlFileContent); + String finalInput = map.getValue(); + if(finalInput.contains("$")){ + finalInput = finalInput.replace("$", "\\$"); + } + xacmlFileContent=m.replaceAll(finalInput); + } + if(blacklist!=null && !blacklist.isEmpty()){ + StringBuilder rule = new StringBuilder(); + for(String blackListName : blacklist){ + if(blackListName.contains("$")){ + blackListName = blackListName.replace("$", "\\$"); + } + rule.append("<AttributeValue DataType=\"http://www.w3.org/2001/XMLSchema#string\">"+blackListName+"</AttributeValue>"); } - } - if(generateMap.get("clname")==null|| generateMap.get("clname").isEmpty()){ - generateMap.put("clname",".*"); - } - generateMap.put("targets", targetRegex.toString().substring(0, targetRegex.length()-1)); - // Replace values. - for(Map.Entry<String,String> map: generateMap.entrySet()){ - Pattern p = Pattern.compile("\\$\\{" +map.getKey() +"\\}"); - Matcher m = p.matcher(xacmlFileContent); - String finalInput = map.getValue(); - if(finalInput.contains("$")){ - finalInput = finalInput.replace("$", "\\$"); - } - xacmlFileContent=m.replaceAll(finalInput); - } - if(blacklist!=null && !blacklist.isEmpty()){ - StringBuilder rule = new StringBuilder(); - for(String blackListName : blacklist){ - if(blackListName.contains("$")){ - blackListName = blackListName.replace("$", "\\$"); - } - rule.append("<AttributeValue DataType=\"http://www.w3.org/2001/XMLSchema#string\">"+blackListName+"</AttributeValue>"); - } - Pattern p = Pattern.compile("\\$\\{blackListElement\\}"); - Matcher m = p.matcher(xacmlFileContent); - xacmlFileContent=m.replaceAll(rule.toString()); - } - PolicyLogger.info("Generated XACML from the YAML Spec: \n" + xacmlFileContent); - return xacmlFileContent; - } + Pattern p = Pattern.compile("\\$\\{blackListElement\\}"); + Matcher m = p.matcher(xacmlFileContent); + xacmlFileContent=m.replaceAll(rule.toString()); + } + PolicyLogger.info("Generated XACML from the YAML Spec: \n" + xacmlFileContent); + return xacmlFileContent; + } } |