Skip to content

Commit 662dae7

Browse files
authored
Merge pull request #5 from secureCodeBox/finding-filenames
Enable specifying file names for scans
2 parents 82a6b3e + 566406b commit 662dae7

File tree

3 files changed

+25
-7
lines changed

3 files changed

+25
-7
lines changed

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,3 +51,6 @@ gradle-app.setting
5151
**/build/
5252

5353
# End of https://www.toptal.com/developers/gitignore/api/java,gradle,intellij
54+
.classpath
55+
.project
56+
.settings/org.eclipse.buildship.core.prefs
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
package io.securecodebox.persistence.defectdojo.models;
2+
3+
import lombok.Data;
4+
5+
@Data
6+
public class ScanFile {
7+
8+
String content;
9+
10+
// a default name must be set, it does not matter however
11+
// unless the parser pays attention to file endings like json or xml
12+
String name = "default-name.txt";
13+
14+
}

src/main/java/io/securecodebox/persistence/defectdojo/service/ImportScanService.java

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
import io.securecodebox.persistence.defectdojo.ScanType;
2222
import io.securecodebox.persistence.defectdojo.config.DefectDojoConfig;
2323
import io.securecodebox.persistence.defectdojo.exceptions.DefectDojoPersistenceException;
24+
import io.securecodebox.persistence.defectdojo.models.ScanFile;
2425
import lombok.Data;
2526
import org.springframework.core.io.ByteArrayResource;
2627
import org.springframework.http.HttpEntity;
@@ -60,7 +61,7 @@ private HttpHeaders getDefectDojoAuthorizationHeaders() {
6061
/**
6162
* Before version 1.5.4. testName (in DefectDojo _test_type_) must be defectDojoScanName, afterwards, you can have somethings else
6263
*/
63-
protected ImportScanResponse createFindings(String rawResult, String endpoint, long lead, String currentDate, ScanType scanType, long testType, MultiValueMap<String, Object> options) {
64+
protected ImportScanResponse createFindings(ScanFile scanFile, String endpoint, long lead, String currentDate, ScanType scanType, long testType, MultiValueMap<String, Object> options) {
6465
RestTemplate restTemplate = new RestTemplate();
6566
HttpHeaders headers = getDefectDojoAuthorizationHeaders();
6667
headers.setContentType(MediaType.MULTIPART_FORM_DATA);
@@ -85,10 +86,10 @@ protected ImportScanResponse createFindings(String rawResult, String endpoint, l
8586
mvn.addAll(options);
8687

8788
try {
88-
ByteArrayResource contentsAsResource = new ByteArrayResource(rawResult.getBytes(StandardCharsets.UTF_8)) {
89+
ByteArrayResource contentsAsResource = new ByteArrayResource(scanFile.getContent().getBytes(StandardCharsets.UTF_8)) {
8990
@Override
9091
public String getFilename() {
91-
return "this_needs_to_be_here_but_doesnt_really_matter.txt";
92+
return scanFile.getName();
9293
}
9394
};
9495

@@ -102,18 +103,18 @@ public String getFilename() {
102103
}
103104
}
104105

105-
public ImportScanResponse importScan(String rawResults, long engagementId, long lead, String currentDate, ScanType scanType, long testType) {
106+
public ImportScanResponse importScan(ScanFile scanFile, long engagementId, long lead, String currentDate, ScanType scanType, long testType) {
106107
var additionalValues = new LinkedMultiValueMap<String, Object>();
107108
additionalValues.add("engagement", Long.toString(engagementId));
108109

109-
return this.createFindings(rawResults, "import-scan", lead, currentDate, scanType, testType, additionalValues);
110+
return this.createFindings(scanFile, "import-scan", lead, currentDate, scanType, testType, additionalValues);
110111
}
111112

112-
public ImportScanResponse reimportScan(String rawResults, long testId, long lead, String currentDate, ScanType scanType, long testType) {
113+
public ImportScanResponse reimportScan(ScanFile scanFile, long testId, long lead, String currentDate, ScanType scanType, long testType) {
113114
var additionalValues = new LinkedMultiValueMap<String, Object>();
114115
additionalValues.add("test", Long.toString(testId));
115116

116-
return this.createFindings(rawResults, "reimport-scan", lead, currentDate, scanType, testType, additionalValues);
117+
return this.createFindings(scanFile, "reimport-scan", lead, currentDate, scanType, testType, additionalValues);
117118
}
118119

119120
@Data

0 commit comments

Comments
 (0)