#spring #spring-mvc #security
#spring #spring-mvc #Безопасность
Вопрос:
Допустим, у меня есть «Человек» @Entity
, управляемый через JPA, который имеет ряд проверок, применяемых на уровне сущности ( @NotBlank, @NotNull
и т.д.).
@Entity
public class Person {
@NotBlank
private String name;
@Email
private String email;
...
}
По разным причинам мы не должны напрямую использовать объект в качестве аргумента метода контроллера, а скорее создавать пользовательскую «форму» (взяв пример из https://spring.io/guides/gs/validating-form-input /)
@PostMapping("/person/save")
public String savePerson(@Valid PersonForm personForm, BindingResult bindingResult) {
// map fields to Person entity individually and save
...
}
Но теперь, чтобы использовать встроенную проверку формы Spring / BindingResult
, похоже, мне нужно дублировать всю мою логику проверки как в классах Person, так и PersonForm . Я не просто хочу определять их в PersonForm, потому что в приложении могут быть другие маршруты для обновления Person.
В идеале было бы каким-то образом, чтобы Spring мог снять ограничения проверки @Entity
и применить их к форме (например, если свойства имеют одно и то же имя).
Я что-то упускаю здесь с проверкой?