스프링 MVC 컨트롤러에서 handler method
을 보호하기위한 좋은 접근 방법이 궁금합니다. 이제 나는 @Secured
어노테이션을 사용하는데, 이는 어떤 메소드가 로그 인한 사용자 만 액세스 할 수 있음을 보장합니다. 그러나 한 사용자가 다른 사용자에게 나쁜 영향을 미치지 않도록하는 방법은 무엇입니까? 예를 들어 주어진 항목 id
과 함께 삭제하는 메소드가 있습니다. 다른 사람이 자신의 물건 이외의 물품을 지울 수 없도록하려면 물품 소유자를 확인하십시오. 그런 식으로하는 것이 더 좋은 방법인가요?스프링 MVC : 보안 처리 메소드
@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";
}
일부 사용자는 특정 동작을 제한하고 싶지 않습니다. – marioosh