Jackson deserialisiert die "Null" -String als Null-Anfrage-Körper, der erwartet wird (obwohl es schön wäre, dieses Verhalten auszuschalten).Spring 4 - "null" @RequestBody für alle Endpunkte ablehnen
Der folgende Code löst die Validierung bei "{}" - Nutzdaten aus, nicht jedoch bei "Null" -Nutzdaten. Dies zwingt mich zu einer weiteren Überprüfung auf Null-Payload, was mir nicht normal erscheint, da der PayloadValidator den Null-Check selbst enthalten könnte.
@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
}
- Gibt es eine generische Art und Weise insgesamt null @RequestBody abzulehnen (das heißt für alle Endpunkte)?
- Wenn nicht, kann ich die gesamte Validierungslogik an einem Ort haben und automatisch ausgelöst werden (d. H. Über @Validated oder @Valid)?
Danke, Emanuel
Danke, öffnete ein [jira Problem] (https://jira.spring.io/browse/SPR-13490) –