Wie lehne ich die leere Zeichenfolge "" in der @RequestHeader -Validierung im Spring Boot ab, ohne sie manuell zu bearbe
Posted: 16 Mar 2025, 15:00
Ich habe einen Spring -Boot -Controller, in dem ich @Requestheader verwende, um die erforderlichen Header durchzusetzen. Trotz @notblank akzeptiert der Controller immer noch Anfragen, bei denen der erforderliche Header eine leere Zeichenfolge ist (""), die ich verhindern muss. < /P>
Hier ist eine vereinfachte Version meines Controllers:public interface Controller{
@RequestMapping(
method = RequestMethod.POST,
value = "/some-endpoint",
produces = {"application/json"},
consumes = {"application/json"}
)
public ResponseEntity processRequest(
@NotBlank @RequestHeader(value = "request-id", required = true) String requestId,
@RequestHeader(value = "optional-header", required = false) String optionalHeader,
@NotBlank @RequestHeader(value = "mandatory-header", required = true) String mandatoryHeader,
@Valid @RequestBody SomeRequestObject requestBody
);
< /code>
Was ich ausprobiert habe: < /p>
Hier ist eine vereinfachte Version meines Controllers:public interface Controller{
@RequestMapping(
method = RequestMethod.POST,
value = "/some-endpoint",
produces = {"application/json"},
consumes = {"application/json"}
)
public ResponseEntity processRequest(
@NotBlank @RequestHeader(value = "request-id", required = true) String requestId,
@RequestHeader(value = "optional-header", required = false) String optionalHeader,
@NotBlank @RequestHeader(value = "mandatory-header", required = true) String mandatoryHeader,
@Valid @RequestBody SomeRequestObject requestBody
);
< /code>
Was ich ausprobiert habe: < /p>
- Verwenden Sie @notblank auf @Requestheader → Erlaubt immer noch leere Zeichenfolge (""). @RequestBody, aber nicht für @Requestheader.