假设我在Spring MVC控制器中有一个处理程序:
@RequestMapping
public String myHandler(Model m, @RequestParam MyEntity entity)
但是,MyEntity
有几个字段,其中一些字段需要不同的权限才能查看或更新。目前我正在从实体对象填充FormBean
,但此时我不知道请求设置了什么,因此我无法逐字段检查。关于如何正确处理这个问题的任何想法?我希望能够为查看或更新它所需的每个字段指定一个特定的角色。
答案 0 :(得分:1)
如果您正在使用容器安全性并且可以访问HttpServletRequest,那么您可以利用HttpServletRequest(http://download.oracle.com/javaee/6/api/javax/servlet/http/HttpServletRequest.html#isUserInRole%28java.lang.String%29)上的'isUserInRole'方法
例如:
boolean canEditEmail = request.isUserInRole("ROLE_EDIT_EMAIL");
答案 1 :(得分:0)
我看到解决此问题的最佳方式是使用InitBinder
和setAllowedFields
功能,以下论坛帖子讨论了这个问题: