我试图用类型级别的@PreAuthorize注释保护Controller,并尝试通过使用不同的@PreAuthorize注释某些方法来覆盖该行为.然而,问题是
Spring首先评估方法注释(grant access),然后评估类注释(拒绝访问).
有没有办法扭转这个订单?我还没弄清楚.
编辑:
@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(),从而导致访问权限的授予,并立即拒绝访问.