I have a strange issue when importing OpenAPI definition for our server when passing it via
http://localhost:60000/swagger/v1/swagger.json an error is thrown:
[ZAP-Import-OpenAPI-1]
WARN org.zaproxy.zap.extension.openapi.ExtensionOpenApi - class
io.swagger.v3.oas.models.media.JsonSchema cannot be cast to class
io.swagger.v3.oas.models.media.ArraySchema
(io.swagger.v3.oas.models.media.JsonSchema and
io.swagger.v3.oas.models.media.ArraySchema are in unnamed module of
loader org.zaproxy.zap.control.AddOnClassLoader @4559cdc2)
java.lang.ClassCastException:
class io.swagger.v3.oas.models.media.JsonSchema cannot be cast to class
io.swagger.v3.oas.models.media.ArraySchema
(io.swagger.v3.oas.models.media.JsonSchema and
io.swagger.v3.oas.models.media.ArraySchema are in unnamed module of
loader org.zaproxy.zap.control.AddOnClassLoader @4559cdc2)
at org.zaproxy.zap.extension.openapi.generators.DataGenerator.generateArrayValue(DataGenerator.java:153)
at org.zaproxy.zap.extension.openapi.generators.DataGenerator.generateParam(DataGenerator.java:136)
at org.zaproxy.zap.extension.openapi.generators.DataGenerator.generate(DataGenerator.java:75)
at org.zaproxy.zap.extension.openapi.generators.PathGenerator.generateFullPath(PathGenerator.java:43)
at org.zaproxy.zap.extension.openapi.converter.swagger.RequestModelConverter.generatePath(RequestModelConverter.java:60)
at org.zaproxy.zap.extension.openapi.converter.swagger.RequestModelConverter.convert(RequestModelConverter.java:46)
at org.zaproxy.zap.extension.openapi.converter.swagger.SwaggerConverter.convertToRequest(SwaggerConverter.java:208)
at org.zaproxy.zap.extension.openapi.converter.swagger.SwaggerConverter.getRequestModels(SwaggerConverter.java:202)
at org.zaproxy.zap.extension.openapi.ExtensionOpenApi$1.run(ExtensionOpenApi.java:427)
this is the whole OpenAPI definition that triggers this issue.
{ "openapi": "3.1.1",
"info": {
"title": "API Documentation",
"description": "Broken open api definition.",
"version": "v1"
},
"paths": {
"/api/someApiEndpoint/attachments": {
"get": {
"parameters": [
{
"name": "parameterName",
"in": "query",
"schema": {
"type": "array",
"items": {
"type": "string"
}
}
}
]
}
}
}
}