Skip to content

Commit 1c64b0d

Browse files
Handle OWASP temp folder creation (#884)
* Handle OWASP temp folder creation
1 parent d066638 commit 1c64b0d

File tree

3 files changed

+31
-1
lines changed

3 files changed

+31
-1
lines changed

src/main/java/com/sap/oss/phosphor/fosstars/data/artifact/VulnerabilitiesFromOwaspDependencyCheck.java

+15
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import static com.sap.oss.phosphor.fosstars.model.Subject.cast;
44
import static com.sap.oss.phosphor.fosstars.model.feature.oss.OssFeatures.VULNERABILITIES_IN_ARTIFACT;
5+
import static com.sap.oss.phosphor.fosstars.model.other.Utils.delete;
56
import static com.sap.oss.phosphor.fosstars.model.other.Utils.setOf;
67

78
import com.sap.oss.phosphor.fosstars.data.DataProvider;
@@ -78,6 +79,16 @@ public class VulnerabilitiesFromOwaspDependencyCheck implements DataProvider {
7879
*/
7980
private static final String REPORT_DIR = String.format("%s/reports", DEFAULT_DOWNLOAD_DIRECTORY);
8081

82+
/**
83+
* The directory to save OWASP Dependency-Check temporary files.
84+
*/
85+
private static final String TEMP_DIR = String.format("%s/tmp", DEFAULT_DOWNLOAD_DIRECTORY);
86+
87+
/**
88+
* The directory to save OWASP Dependency-Check DB file.
89+
*/
90+
private static final String DB_DIR = String.format("%s/db", DEFAULT_DOWNLOAD_DIRECTORY);
91+
8192
/**
8293
* The Dependency-Check report file type.
8394
*/
@@ -100,6 +111,8 @@ public class VulnerabilitiesFromOwaspDependencyCheck implements DataProvider {
100111
public VulnerabilitiesFromOwaspDependencyCheck() {
101112
settings = new Settings();
102113
settings.setString(Settings.KEYS.DATA_DIRECTORY, DEFAULT_DOWNLOAD_DIRECTORY);
114+
settings.setString(Settings.KEYS.TEMP_DIRECTORY, TEMP_DIR);
115+
settings.setString(Settings.KEYS.H2_DATA_DIRECTORY, DB_DIR);
103116
}
104117

105118
/**
@@ -245,6 +258,8 @@ Optional<OwaspDependencyCheckEntry> scan(MavenArtifact artifact) throws IOExcept
245258
try (Engine engine = new Engine(settings)) {
246259
analyze(engine, filePath.get().toFile(), exceptionCollection);
247260
return process(engine, filePath.get().toFile().getName(), exceptionCollection);
261+
} finally {
262+
delete(TEMP_DIR, JAR_DIR, REPORT_DIR);
248263
}
249264
}
250265
return Optional.empty();

src/main/java/com/sap/oss/phosphor/fosstars/data/github/UsesSnyk.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -103,4 +103,4 @@ private boolean hasSnykPolicy(LocalRepository repository) throws IOException {
103103
List<Path> snykPolicyFilePaths = repository.files(SNYK_FILE_PREDICATE);
104104
return !snykPolicyFilePaths.isEmpty();
105105
}
106-
}
106+
}

src/main/java/com/sap/oss/phosphor/fosstars/model/other/Utils.java

+15
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@
33
import com.sap.oss.phosphor.fosstars.model.Feature;
44
import com.sap.oss.phosphor.fosstars.model.Value;
55
import com.sap.oss.phosphor.fosstars.model.value.UnknownValue;
6+
import java.io.File;
7+
import java.io.IOException;
68
import java.text.DateFormat;
79
import java.text.ParseException;
810
import java.text.SimpleDateFormat;
@@ -15,6 +17,7 @@
1517
import java.util.Objects;
1618
import java.util.Optional;
1719
import java.util.Set;
20+
import org.apache.commons.io.FileUtils;
1821

1922
public class Utils {
2023

@@ -185,4 +188,16 @@ public static Date date(String string) {
185188
"Couldn't parse date '%s'", string));
186189
}
187190

191+
192+
/**
193+
* Force delete list of folders.
194+
*
195+
* @param paths list of directory paths tp delete.
196+
* @throws IOException If something goes wrong.
197+
*/
198+
public static void delete(String... paths) throws IOException {
199+
for (String path : paths) {
200+
FileUtils.forceDeleteOnExit(new File(path));
201+
}
202+
}
188203
}

0 commit comments

Comments
 (0)