В моем приложении для весенней загрузки у меня есть метод Spring mvc, который защищен с помощью Spring Security. Я передаю идентификатор этому методу, поскольку переменная пути и преобразователь аргумента данных Spring находят и связывают объект, но когда идентификатор недействителен, объект является нулевым.;я хочу бросить 404, когда сущность равна нулю;потому что пружинная безопасность PreAuthorize требует ненулевой сущности для проверки авторизации пользователя;мой код:
@PutMapping(value = "/{address}")
@PreAuthorize("isAuthenticated() and (#address.user.id == #user.id)")
public ResponseEntity<ResponseModel> update(@Valid @RequestBody AddressModel addressModel, @PathVariable Address address, @AuthenticationPrincipal User user) {
try {
addressService.update(user, address, addressModel);
} catch (Exception e) {
return new ResponseEntity<>(new ResponseModel(e.getMessage(), ResponseModel.ResponseStatus.ERROR), HttpStatus.BAD_REQUEST);
}
return new ResponseEntity<>(new ResponseModel(messages.get("def.op.success"), ResponseModel.ResponseStatus.SUCCESS), HttpStatus.OK);
}
также я тестировал
@PreAuthorize("isAuthenticated() and (#address != null and #address.user.id == #user.id)")
, но он возвращает ошибку 403;