Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -200,15 +200,15 @@ public static JsonNode readYamlTree(String contents) {
public static JsonNode readYamlTree(String contents, ParseOptions parseOptions, SwaggerParseResult deserializationUtilsResult) {

if (parseOptions != null && parseOptions.isLegacyYamlDeserialization()) {
org.yaml.snakeyaml.Yaml yaml = new org.yaml.snakeyaml.Yaml(new SafeConstructor());
org.yaml.snakeyaml.Yaml yaml = new org.yaml.snakeyaml.Yaml();
return Json.mapper().convertValue(yaml.load(contents), JsonNode.class);
}
try {
org.yaml.snakeyaml.Yaml yaml = null;
if (options.isValidateYamlInput()) {
yaml = buildSnakeYaml(new CustomSnakeYamlConstructor());
} else {
yaml = buildSnakeYaml(new SafeConstructor());
yaml = buildSnakeYaml(new SafeConstructor(new LoaderOptions()));
}
Object o = yaml.load(contents);
if (options.isValidateYamlInput()) {
Expand Down Expand Up @@ -244,7 +244,7 @@ public static <T> T readYamlValue(String contents, Class<T> expectedType) {
return readYamlValue(contents, expectedType, false);
}
public static <T> T readYamlValue(String contents, Class<T> expectedType, boolean openapi31) {
org.yaml.snakeyaml.Yaml yaml = new org.yaml.snakeyaml.Yaml(new SafeConstructor());
org.yaml.snakeyaml.Yaml yaml = new org.yaml.snakeyaml.Yaml();
ObjectMapper jsonMapper = openapi31 ? Json31.mapper() : Json.mapper();
return jsonMapper.convertValue(yaml.load(contents), expectedType);
}
Expand All @@ -265,7 +265,7 @@ public static org.yaml.snakeyaml.Yaml buildSnakeYaml(BaseConstructor constructor
method.invoke(loaderOptions, false);
method = LoaderOptions.class.getMethod("setCodePointLimit", int.class);
method.invoke(loaderOptions, options.getMaxYamlCodePoints());
org.yaml.snakeyaml.Yaml yaml = new org.yaml.snakeyaml.Yaml(constructor, new Representer(), new DumperOptions(), loaderOptions, new CustomResolver());
org.yaml.snakeyaml.Yaml yaml = new org.yaml.snakeyaml.Yaml(constructor, new Representer(new DumperOptions()), new DumperOptions(), loaderOptions, new CustomResolver());
return yaml;
} catch (ReflectiveOperationException e) {
//
Expand Down Expand Up @@ -396,7 +396,11 @@ public SnakeException(String message, Throwable cause) {

static class CustomSnakeYamlConstructor extends SafeConstructor {

private boolean checkNode(MappingNode node, Integer depth) {
public CustomSnakeYamlConstructor() {
super(new LoaderOptions());
}

private boolean checkNode(MappingNode node, Integer depth) {
if (node.getValue() == null) return true;
if (depth > options.getMaxYamlDepth()) return false;
int currentDepth = depth;
Expand Down
6 changes: 3 additions & 3 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -402,7 +402,7 @@
</repository>
</repositories>
<properties>
<snakeyaml-version>1.33</snakeyaml-version>
<snakeyaml-version>2.0</snakeyaml-version>
<swagger-parser-v2-version>1.0.64</swagger-parser-v2-version>
<commons-io-version>2.11.0</commons-io-version>
<slf4j-version>1.7.30</slf4j-version>
Expand All @@ -414,8 +414,8 @@
<wiremock-version>2.15.0</wiremock-version>
<surefire-version>2.22.2</surefire-version>
<commons-lang-version>3.2.1</commons-lang-version>
<jackson-version>2.14.0</jackson-version>
<jackson-databind-version>2.14.0</jackson-databind-version>
<jackson-version>2.14.2</jackson-version>
<jackson-databind-version>2.14.2</jackson-databind-version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<sonatypeOssDistMgmtSnapshotsUrl>https://oss.sonatype.org/content/repositories/snapshots/</sonatypeOssDistMgmtSnapshotsUrl>
</properties>
Expand Down