Мне интересно, какой хороший подход к обеспечению безопасности handler method
в контроллере Spring MVC.Теперь я использую аннотацию @Secured
, которая обеспечивает доступ к какому-либо методу только зарегистрированному пользователю.Но как сделать так, чтобы один зарегистрированный пользователь не делал ничего плохого для других пользователей?Например, у меня есть метод, который удаляет элемент с данным id
.Чтобы убедиться, что кто-то не может удалить, кроме своих предметов, я проверяю владельца предмета.Есть ли лучший способ сделать что-то подобное?
@Secured("ROLE_USER")
@RequestMapping("/deleteitem.html")
public String delete(@RequestParam(value="id") Long id) {
Item b = itemDAO.get(id);
if(b.getOwner().getId().equals(((UserDetails) SecurityContextHolder.getContext().getAuthentication().getPrincipal()).getUser().getId())) {
itemDAO.delete(id);
}
return "redirect:/user/items.html";
}