public synchronized List<String> getAllPolicyNames() { if (allPolicyNames == null) { allPolicyNames = new ArrayList<String>(); for (String file : Constant.getPoliciesDir().list()) { if (file.endsWith(POLICY_EXTENSION)) { logger.debug("Found policy file " + file); allPolicyNames.add(file.substring(0, file.lastIndexOf(POLICY_EXTENSION))); } } if (allPolicyNames.size() == 0) { // No policies :( Create a default one ScanPolicy defaultPolicy = new ScanPolicy(); defaultPolicy.setName(DEFAULT_POLICY_NAME); // Load from the 'old' configs defaultPolicy.getPluginFactory().loadAllPlugin(extension.getScannerParam().getConfig()); try { // Note this will add the name to allPolicyNames this.savePolicy(defaultPolicy); } catch (ConfigurationException e) { logger.debug( "Failed to create default scan policy in " + Constant.getPoliciesDir().getAbsolutePath(), e); } } Collections.sort(allPolicyNames); } return allPolicyNames; }
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); }
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); } }