protected boolean checkResourceName(String resourceName) { if (resourceName.indexOf('\\') != -1) return false; // don't allow backslashes if (resourceName.indexOf(':') != -1) return false; // don't allow colons if (resourceName.indexOf("..") != -1) return false; // don't allow parent indicators if ("/".indexOf(resourceName.charAt(0)) != -1) return false; // don't allow absolute paths // defer to our file filter return strategy.getFilenameFilter().accept(directory, resourceName); }
public List<String> listResourceNames() { return FileUtils.listRecursively(directory, strategy.getFilenameFilter()); }
public boolean requiresWriteLock(String resourceName) { FilenameFilter unlocked = strategy.getUnlockedFilter(); if (unlocked == null) return true; else return !unlocked.accept(null, resourceName); }
public Object getLockTarget() { return new File(directory, strategy.getLockFilename()); }
public void backupCollection(String backupQualifier) throws IOException { synchronized (writeLock) { mostRecentBackup = strategy.getBackupHandler(directory).backup(backupQualifier); } }