Необходимо отклонить запрос POST / PUT, если в RequestBody присутствует какое-либо неизвестное поле - PullRequest
3 голосов
/ 08 апреля 2020

@ Действительная проверка работает для соответствующих полей. Есть ли способ отклонить запросы, если в JSON requestbody для запросов POST / PUT присутствуют какие-либо неизвестные поля. Ниже приведен мой пример класса DTO и контроллера. Для приведенного ниже примера тела запроса (например) запрос должен быть отклонен / выбросить исключение. Буду признателен за любую помощь или предложение.

{
"accountid" : "P12345",
"name" : "Cardiology",
"domain" : "Apollo"
}

public class Account {

    @NotEmpty(message = "accountid is required")
    private String accountid;

    @NotEmpty(message = "name is required")
    private String name;

   //getters & setters

}

**********************************************************************************************

public class BeanController {

    @PostMapping(path = "/accounts")
    public ResponseEntity<?> getAllAccounts(@RequestBody @Valid Account account) {

        System.out.println("::: Account is " + account + " :::");

        return ResponseEntity.ok().body("SUCCESS");

    }
}

1 Ответ

3 голосов
/ 08 апреля 2020

Вы можете сделать это, используя @JsonIgnoreProperties.

@JsonIgnoreProperties(ignoreUnknown = true)
public class Account {

    @NotEmpty(message = "accountid is required")
    private String accountid;

    @NotEmpty(message = "name is required")
    private String name;

   //getters & setters

}

Добавьте нижеприведенные свойства в application.yml для работы в весенней загрузке последней версии.

spring:
  jackson:
    deserialization:
      fail-on-unknown-properties: true
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...