public void exportPolicy(ScanPolicy policy, File file) throws ConfigurationException { logger.debug("Export policy to " + file.getAbsolutePath()); ZapXmlConfiguration conf = new ZapXmlConfiguration(); conf.setProperty("policy", policy.getName()); conf.setProperty("scanner.level", policy.getDefaultThreshold().name()); conf.setProperty("scanner.strength", policy.getDefaultStrength().name()); policy.getPluginFactory().saveTo(conf); conf.save(file); }
private ScanPolicy loadPolicy(File file) throws ConfigurationException { ScanPolicy policy = new ScanPolicy(new ZapXmlConfiguration(file)); if (!file.getName().equals(policy.getName() + POLICY_EXTENSION)) { // The file name takes precedence in case theres another policy with the same name policy.setName(file.getName().substring(0, file.getName().indexOf(POLICY_EXTENSION))); } return policy; }
public void savePolicy(ScanPolicy policy, String previousName) throws ConfigurationException { logger.debug("Save policy " + policy.getName()); File file = new File(Constant.getPoliciesDir(), policy.getName() + POLICY_EXTENSION); ZapXmlConfiguration conf = new ZapXmlConfiguration(); conf.setProperty("policy", policy.getName()); conf.setProperty("scanner.level", policy.getDefaultThreshold().name()); conf.setProperty("scanner.strength", policy.getDefaultStrength().name()); policy.getPluginFactory().saveTo(conf); conf.save(file); if (previousName != null && previousName.length() > 0) { allPolicyNames.remove(previousName); } if (!allPolicyNames.contains(policy.getName())) { allPolicyNames.add(policy.getName()); Collections.sort(allPolicyNames); } }