2

在 RESTful Spring MVC 应用程序中,限制用户更新域对象能力的最有效方法是什么?

想象一个具有以下 url 的电影服务:“service/movie/id”。有 2 组用户,管理员和基本用户。

虽然管理员可以使用 PUT 请求来更新电影 DTO 的所有属性,但基本用户只能更新其中的一部分。

使用 Spring Security 实现这一点的最佳方法是什么?

我考虑过为管理员和基本用户设置单独的 url,但这似乎不优雅。

4

2 回答 2

1

您可以使用@PreAuthorize注释来检查角色。看看它是否是你需要的。
http://static.springsource.org/spring-security/site/docs/3.0.x/reference/el-access.html#el-pre-post-annotations

更新
您可以@PreAuthorize("hasRole('ROLE_USER','ROLE_ADMIN')")用于多个角色。

于 2013-05-14T14:52:22.747 回答
0

我想出了一个非常简单的方法来实现这一点,但这可能不是最好的解决方案:在我的控制器方法中,我可以简单地找出用户的角色等:

Authentication authentication = SecurityContextHolder.getContext().getAuthentication();

然后将其路由到特定于用户角色的服务方法。

于 2013-05-14T16:20:56.883 回答