【发布时间】:2011-08-03 21:45:21
【问题描述】:
我想知道在 Spring MVC 控制器中保护 handler method 的好方法是什么。现在我使用@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";
}
【问题讨论】:
标签: security spring-mvc controller spring-security