Jackson deserializza la stringa "null" come corpo di richiesta null che è previsto (anche se sarebbe bello poter disattivare questo comportamento).Spring 4 - reject "null" @RequestBody per tutti gli endpoint
Il codice seguente attiva la convalida in caso di carico utile "{}" ma non in caso di carico utile "nullo". Questo mi obbliga a fare un altro controllo per il carico utile nullo che non mi sembra normale dal momento che PayloadValidator potrebbe includere il controllo nulla stesso.
@InitBinder
protected void initBinder(WebDataBinder binder) {
binder.setValidator(new PayloadValidator());
}
@RequestMapping(method = POST, value = "/my/path/here")
public ResponseEntity<String> create(
@Validated @RequestBody Payload payload
) {
if (payload == null) {
// Payload validation logic not in one place
}
// useful work here
}
- C'è un modo generico di rigetto @RequestBody nullo del tutto (cioè per tutti gli endpoint)?
- In caso contrario, è possibile avere tutta la logica di convalida in un posto e essere attivata automaticamente (ovvero tramite @Validated o @Valid)?
Grazie, Emanuel
Grazie, aperto un [problema jira] (https://jira.spring.io/browse/SPR-13490) –