【发布时间】:2011-11-29 21:32:52
【问题描述】:
我正在尝试在类型级别使用@PreAuthorize 注释保护控制器,并尝试通过使用不同的@PreAuthorize 注释某些方法来覆盖该行为。然而问题是,Spring首先评估方法注释(授予访问权限),然后评估类注释(拒绝访问)。
有没有办法颠倒这个顺序?我还想不通。
编辑:
在方法级别,我只想授予非注册用户访问权限:
@PreAuthorize("isAnonymous()")
@RequestMapping(value = "/create", method = RequestMethod.GET)
public String renderCreateEntity(ModelMap model) {
return userService.renderCreateEntity(model);
}
然而,此控制器的标准应该是只允许经过完全身份验证的用户:
@Controller
@RequestMapping(value = "/user")
@PreAuthorize("isFullyAuthenticated()")
public class UserController { [...] }
在调试单步调试应用时,我看到首先评估 isAnonymous(),然后评估 isFullyAuthenticated(),从而导致授予访问权限并立即再次拒绝访问。
【问题讨论】:
-
您使用的是哪个版本的 Spring Security?
-
春天的一切都是 3.0.5.RELEASE
标签: java spring spring-security