The OpenAPI validation for "multipart/form-data" is not working properly.
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 3/5
- Tiempo estimado
- 1-2 días
- Aptitud para principiantes
- 55/100
Línea de trabajo
The issue is in RequestValidatorImpl where the body for multipart/form-data is null. Start by examining the validation flow for multipart requests in vertx-openapi. Look at the test suite for OpenAPI validation to understand how multipart/form-data is handled. The fix likely involves ensuring the body is properly extracted and passed to the validator. Check the linked image for the exact line (148) in RequestValidatorImpl.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Version
5.2.0
Context
I have an OpenAPI description for an endpoint with content “multipart/form-data”:
paths:
/someEndpoint:
post:
requestBody:
required: true
content:
multipart/form-data:
schema:
type: object
required:
- someFile
- someValue
properties:
someFile:
type: string
format: binary
someValue:
type: string
encoding:
someFile:
contentType: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
In Vertx 4, this worked correctly, and I received validation errors for required fields:
for example (if missed) BodyProcessorException - "[Bad Request] Validation error for body multipart/form-data: provided object should contain property someValue"
After migrating to Vertx 5, it was broken, and I got the ValidatorException: "The related request does not contain the required body."
io.vertx.openapi.validation.impl.RequestValidatorImpl:
The body in the request for multipart/form-data is always null, and we got an exception for the required body on 148 line.
Or if the body is not required, then all other validation for form fields will be skipped.
Steps to reproduce
No response
Do you have a reproducer?
No response
- Lenguaje dominante
- Java
- Estrellas
- 15
- Forks
- 19
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Sin plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de eclipse-vertx/vertx-openapi
-
Add OpenAPI 3.2 supportAbiertoenhancement help wanted
Dificultad 4/5 3-5 días Aptitud para principiantes 45/100
eclipse-vertx/vertx-openapi#136 · 1 comentario ·
-
enhancement
Dificultad 3/5 1-2 días Aptitud para principiantes 38/100
eclipse-vertx/vertx-openapi#122 · 4 comentarios ·
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 48/100
eclipse-vertx/vertx-openapi#117 · 6 comentarios ·
-
enhancement
Dificultad 5/5 Más de una semana Aptitud para principiantes 35/100
eclipse-vertx/vertx-openapi#93 · 1 comentario ·
-
enhancement
Dificultad 5/5 Más de una semana Aptitud para principiantes 35/100
eclipse-vertx/vertx-openapi#92 · 4 comentarios ·
Todos los issues de eclipse-vertx/vertx-openapi
Issues similares
-
[BUG] jackson3 JacksonJsonpMapper(ObjectMapper) fails to deserialize `_source` with "Trailing token" errorPosiblemente ocupada @junyeokk la tomó hoy. Abiertobug untriaged
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
opensearch-project/opensearch-java#2236 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 67/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
open-learning-exchange/myplanet#18392 ·
Los mantenedores suelen responder en 2 días
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
linagora/twake-calendar-side-service#1218 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
[Bug] [Go] Ack returns nil when the server answers with a non-OK statusPosiblemente ocupada @leizhiyuan la tomó hoy. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
apache/rocketmq-clients#1465 ·
Los mantenedores suelen responder en 2 días