У меня есть следующее утверждение:
@PreAuthorize("@securityService.isAllowedAccessByCurrentUser(@followingServiceImpl.findOne(#id).user.id)")
public void delete(@PathVariable("id") final Long id) {
Спецификация метода принимает идентификатор следующего объекта, который будет удален, если существует следующий объект с таким идентификатором.
Оператор PreAuthorize будет работать до тех пор, пока findOne (#id) не возвращает ноль (не ноль, если объект существует с таким идентификатором).
Проблема возникает, если переданный идентификатор не принадлежит следующему объекту, что будет означать, что .user приведет к исключению нулевого указателя. Каков наилучший способ передачи userId, если он существует (существует следующий объект), и, если он не существует, мы можем передать null в isAllowedAccessByCurrentUser.
В настоящее время, как есть, мы получаем исключение нулевого указателя, если следующий объект с указанным идентификатором не существует