Skip to content

Commit 4264888

Browse files
committed
feat: prevent path traversal attacks in Generator class(#12611)
1 parent bb7f58e commit 4264888

File tree

2 files changed

+2
-4
lines changed

2 files changed

+2
-4
lines changed

modules/swagger-generator/src/main/java/io/swagger/generator/online/Generator.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,7 @@ private static String generate(String language, GeneratorInput opts, Type type)
122122
if (destPath == null) {
123123
destPath = language + "-" + type.getTypeName();
124124
}
125+
SecureFileUtils.validatePath(destPath);
125126

126127
ClientOptInput clientOptInput = new ClientOptInput();
127128
ClientOpts clientOpts = new ClientOpts();
@@ -147,7 +148,6 @@ private static String generate(String language, GeneratorInput opts, Type type)
147148
if (files.size() > 0) {
148149
List<File> filesToAdd = new ArrayList<File>();
149150
LOGGER.debug("adding to " + outputFolder);
150-
SecureFileUtils.validatePath(outputFolder);
151151
filesToAdd.add(new File(outputFolder));
152152
ZipUtil zip = new ZipUtil();
153153
zip.compressFiles(filesToAdd, outputFilename);
@@ -164,7 +164,6 @@ private static String generate(String language, GeneratorInput opts, Type type)
164164
}
165165
}
166166
try {
167-
SecureFileUtils.validatePath(outputFilename);
168167
new File(outputFolder).delete();
169168
} catch (Exception e) {
170169
LOGGER.error("unable to delete output folder " + outputFolder);

modules/swagger-generator/src/test/java/io/swagger/generator/online/GeneratorTest.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
package io.swagger.generator.online;
22

3-
import io.swagger.generator.exception.BadRequestException;
43
import org.testng.annotations.Test;
54
import com.fasterxml.jackson.databind.JsonNode;
65
import com.fasterxml.jackson.databind.ObjectMapper;
@@ -14,7 +13,7 @@
1413
*/
1514
public class GeneratorTest {
1615

17-
@Test(expectedExceptions = BadRequestException.class)
16+
@Test(expectedExceptions = SecurityException.class)
1817
public void testGenerateWithPathTraversalInOutputFolder() throws Exception {
1918
io.swagger.generator.model.GeneratorInput opts = new io.swagger.generator.model.GeneratorInput();
2019

0 commit comments

Comments
 (0)