Spring Security 2和FormBean字段权限

时间:2011-01-24 16:43:56

标签: spring-mvc spring-security

假设我在Spring MVC控制器中有一个处理程序:

@RequestMapping
public String myHandler(Model m, @RequestParam MyEntity entity)

但是,MyEntity有几个字段,其中一些字段需要不同的权限才能查看或更新。目前我正在从实体对象填充FormBean,但此时我不知道请求设置了什么,因此我无法逐字段检查。关于如何正确处理这个问题的任何想法?我希望能够为查看或更新它所需的每个字段指定一个特定的角色。

2 个答案:

答案 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)

我看到解决此问题的最佳方式是使用InitBindersetAllowedFields功能,以下论坛帖子讨论了这个问题:

http://forum.springframework.org/showthread.php?t=10820