Skip to content

Commit 943c0b1

Browse files
gracekarinafrantuma
authored andcommitted
oas 3.1 - minor fix
1 parent fce6d9e commit 943c0b1

File tree

2 files changed

+16
-4
lines changed

2 files changed

+16
-4
lines changed

modules/swagger-parser-v3/src/main/java/io/swagger/v3/parser/util/OpenAPIDeserializer.java

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -268,6 +268,10 @@ public class OpenAPIDeserializer {
268268
private Map<String,String> localSchemaRefs = new HashMap<>();
269269

270270
public SwaggerParseResult deserialize(JsonNode rootNode) {
271+
return deserialize(rootNode, null);
272+
}
273+
274+
public SwaggerParseResult deserialize(JsonNode rootNode, String path) {
271275
return deserialize(rootNode, null, false);
272276
}
273277

@@ -395,7 +399,7 @@ public OpenAPI parseRoot(JsonNode node, ParseResult result, String path) {
395399
if (result.isOpenapi31()) {
396400
value = getString("jsonSchemaDialect", rootNode, false, location, result);
397401
if (value != null) {
398-
if (isValidURL(value)) {
402+
if (isValidURI(value)) {
399403
openAPI.setJsonSchemaDialect(value);
400404
}else{
401405
result.warning(location,"jsonSchemaDialect. Invalid url: " + value);
@@ -425,6 +429,15 @@ public OpenAPI parseRoot(JsonNode node, ParseResult result, String path) {
425429
return openAPI;
426430
}
427431

432+
boolean isValidURI(String uriString) {
433+
try {
434+
URI uri = new URI(uriString);
435+
return true;
436+
} catch (Exception exception) {
437+
return false;
438+
}
439+
}
440+
428441
private void validateReservedKeywords(Map<String, Set<String>> specKeys, String key, String location, ParseResult result) {
429442
if(!result.isOaiAuthor() && result.isOpenapi31() && specKeys.get("RESERVED_KEYWORDS").stream()
430443
.filter(rk -> key.startsWith(rk))

modules/swagger-parser-v3/src/test/java/io/swagger/v3/parser/test/OAI31DeserializationTest.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -63,20 +63,19 @@ public void testJsonSchemaDialectValid() {
6363
assertNotNull(result.getOpenAPI());
6464
assertNotNull(result.getOpenAPI().getJsonSchemaDialect());
6565
assertEquals(result.getOpenAPI().getJsonSchemaDialect(), "https://json-schema.org/draft/2020-12/schema");
66-
6766
}
6867

6968
@Test
7069
public void testJsonSchemaDialectInvalid() {
7170
String jsonSchemaDialect = "openapi: 3.1.0\n" +
72-
"jsonSchemaDialect: http//\n" +
71+
"jsonSchemaDialect: \" \"\n" +
7372
"info:\n" +
7473
" title: Swagger Petstore\n" +
7574
" version: 1.0.0\n" +
7675
"paths: {}";
7776
SwaggerParseResult result = new OpenAPIV3Parser().readContents( jsonSchemaDialect, null, null);
7877
assertNotNull(result.getOpenAPI());
79-
assertTrue(result.getMessages().contains("jsonSchemaDialect. Invalid url: http//"));
78+
assertTrue(result.getMessages().contains("jsonSchemaDialect. Invalid url: "));
8079

8180
}
8281

0 commit comments

Comments
 (0)