json-schema-validator icon indicating copy to clipboard operation
json-schema-validator copied to clipboard

Since 1.3.0: UUID not correctly validated

Open itineric opened this issue 2 years ago • 4 comments

Consider the following schema:

{
  "type": "object",
  "properties":
  {
    "id":
    {
      "type": "string",
      "format": "uuid"
    }
  }
}

Using UUID as defined here: https://json-schema.org/draft/2019-09/json-schema-validation#rfc.section.7.3.5

Validating the following JSON does not produce an error as expected (with version 1.2.0 it worked)

{
  "id": "not an UUID"
}

itineric avatar Jan 29 '24 10:01 itineric

In version 1.3.0 the format keyword by default complies with the specification that it should be an annotation since 2019-09 and configuration needs to be set to always generate an assertion or the required vocabulary needs to be in the meta schema.

https://json-schema.org/draft/2020-12/json-schema-validation#name-vocabularies-for-semantic-c

justin-tay avatar Jan 29 '24 10:01 justin-tay

what should I modify in the given example ? Sorry I dont get it.

itineric avatar Jan 29 '24 11:01 itineric

You can set setFormatAssertionsEnabled on the SchemaValidatorsConfig or on a per execution basis.

Set<ValidationMessage> assertions = schema.validate(input, InputFormat.JSON, executionContext -> {
    // By default since Draft 2019-09 the format keyword only generates annotations and not assertions
    executionContext.getConfig().setFormatAssertionsEnabled(true);
});

justin-tay avatar Jan 29 '24 11:01 justin-tay

Should be closed, see #938

rmuller avatar Mar 05 '24 14:03 rmuller