Skip to content

Commit 0f80b5f

Browse files
authored
Merge pull request #999 from swagger-api/ticket-998
ref #998 - limit YAML input
2 parents 6626b70 + da0408f commit 0f80b5f

File tree

8 files changed

+954
-39
lines changed

8 files changed

+954
-39
lines changed

modules/swagger-parser/pom.xml

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -28,23 +28,38 @@
2828
</profile>
2929
</profiles>
3030
<dependencies>
31+
<dependency>
32+
<groupId>io.swagger</groupId>
33+
<artifactId>swagger-core</artifactId>
34+
<version>${swagger-core-version}</version>
35+
</dependency>
3136
<dependency>
3237
<groupId>org.testng</groupId>
3338
<artifactId>testng</artifactId>
3439
<version>${testng-version}</version>
3540
<scope>test</scope>
3641
</dependency>
42+
<dependency>
43+
<groupId>org.slf4j</groupId>
44+
<artifactId>slf4j-ext</artifactId>
45+
<version>${slf4j-version}</version>
46+
</dependency>
47+
<dependency>
48+
<groupId>org.slf4j</groupId>
49+
<artifactId>slf4j-api</artifactId>
50+
<version>${slf4j-version}</version>
51+
</dependency>
52+
<dependency>
53+
<groupId>commons-io</groupId>
54+
<artifactId>commons-io</artifactId>
55+
<version>${commons-io-version}</version>
56+
</dependency>
3757
<dependency>
3858
<groupId>org.jmockit</groupId>
3959
<artifactId>jmockit</artifactId>
4060
<version>${jmockit-version}</version>
4161
<scope>test</scope>
4262
</dependency>
43-
<dependency>
44-
<groupId>io.swagger</groupId>
45-
<artifactId>swagger-core</artifactId>
46-
<version>${swagger-core-version}</version>
47-
</dependency>
4863
<dependency>
4964
<groupId>${project.parent.groupId}</groupId>
5065
<artifactId>swagger-core</artifactId>
@@ -58,21 +73,6 @@
5873
<version>${junit-version}</version>
5974
<scope>test</scope>
6075
</dependency>
61-
<dependency>
62-
<groupId>org.slf4j</groupId>
63-
<artifactId>slf4j-ext</artifactId>
64-
<version>${slf4j-version}</version>
65-
</dependency>
66-
<dependency>
67-
<groupId>org.slf4j</groupId>
68-
<artifactId>slf4j-api</artifactId>
69-
<version>${slf4j-version}</version>
70-
</dependency>
71-
<dependency>
72-
<groupId>commons-io</groupId>
73-
<artifactId>commons-io</artifactId>
74-
<version>${commons-io-version}</version>
75-
</dependency>
7676
<dependency>
7777
<groupId>org.slf4j</groupId>
7878
<artifactId>slf4j-simple</artifactId>

modules/swagger-parser/src/main/java/io/swagger/parser/ResolverCache.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -129,7 +129,7 @@ else if(rootPath != null) {
129129
}
130130

131131
//a definition path is defined, meaning we need to "dig down" through the JSON tree and get the desired entity
132-
JsonNode tree = DeserializationUtils.deserializeIntoTree(contents, file);
132+
JsonNode tree = deserialize(contents, file);
133133

134134
String[] jsonPathElements = definitionPath.split("/");
135135
for (String jsonPathElement : jsonPathElements) {
@@ -155,6 +155,10 @@ else if(rootPath != null) {
155155
return result;
156156
}
157157

158+
protected JsonNode deserialize(String contents, String file) {
159+
return DeserializationUtils.deserializeIntoTree(contents, file);
160+
}
161+
158162
protected <T> void updateLocalRefs(String file, T result) {
159163
if(result instanceof Response) {
160164
Response response = (Response) result;

modules/swagger-parser/src/main/java/io/swagger/parser/Swagger20Parser.java

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ public SwaggerDeserializationResult readWithInfo(String location, List<Authoriza
6161
ObjectMapper mapper = Json.mapper();
6262
rootNode = mapper.readTree(data);
6363
} else {
64-
rootNode = DeserializationUtils.readYamlTree(data);
64+
rootNode = deserializeYaml(data);
6565
}
6666
return readWithInfo(rootNode);
6767
}
@@ -79,6 +79,10 @@ public SwaggerDeserializationResult readWithInfo(String location, List<Authoriza
7979
}
8080
}
8181

82+
protected JsonNode deserializeYaml(String data) throws IOException{
83+
return DeserializationUtils.readYamlTree(data);
84+
}
85+
8286
@Override
8387
public Swagger read(String location, List<AuthorizationValue> auths) throws IOException {
8488
LOGGER.info("reading from " + location);
@@ -118,7 +122,7 @@ private Swagger convertToSwagger(String data) throws IOException {
118122
ObjectMapper mapper = Json.mapper();
119123
rootNode = mapper.readTree(data);
120124
} else {
121-
rootNode = DeserializationUtils.readYamlTree(data);
125+
rootNode = deserializeYaml(data);
122126
}
123127

124128
if (System.getProperty("debugParser") != null) {

modules/swagger-parser/src/main/java/io/swagger/parser/SwaggerParser.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,10 @@ public SwaggerDeserializationResult readWithInfo(String swaggerAsString) {
9494
return readWithInfo(swaggerAsString, Boolean.TRUE);
9595
}
9696

97+
protected JsonNode deserializeYaml(String data) throws IOException{
98+
return DeserializationUtils.readYamlTree(data);
99+
}
100+
97101
public SwaggerDeserializationResult readWithInfo(String swaggerAsString, boolean resolve) {
98102
if (swaggerAsString == null || swaggerAsString.trim().isEmpty()) {
99103
return new SwaggerDeserializationResult().message("empty or null swagger supplied");
@@ -104,7 +108,7 @@ public SwaggerDeserializationResult readWithInfo(String swaggerAsString, boolean
104108
ObjectMapper mapper = Json.mapper();
105109
node = mapper.readTree(swaggerAsString);
106110
} else {
107-
node = DeserializationUtils.readYamlTree(swaggerAsString);
111+
node = deserializeYaml(swaggerAsString);
108112
}
109113

110114
SwaggerDeserializationResult result = new Swagger20Parser().readWithInfo(node);

0 commit comments

Comments
 (0)