Я хотел бы использовать SpEL для обеспечения безопасности на уровне метода. Я столкнулся с проблемой, когда данных, переданных методу, недостаточно, чтобы определить, есть ли у пользователя доступ. Вот пример
@RequestMapping(value = "/{id}", method = RequestMethod.DELETE)
@ResponseStatus(HttpStatus.NO_CONTENT)
@PreAuthorize("@securityService.isAllowedAccessByCurrentUser(#.id)")
public void delete(@PathVariable("id") final Long id) {
service.delete(id);
}
Здесь переменная id — это идентификатор некоторого объекта. Чтобы получить идентификатор владельца объекта (это то, что я хочу передать в выражении spel), мне нужно сделать что-то вроде:
service.findOne(id).getUser().getId();
Как я могу получить этот идентификатор и использовать его в выражении SpEL?