【发布时间】:2014-10-26 00:09:10
【问题描述】:
基本上,我有一个允许普通用户使用的控制器,并且我希望管理员可以通过不同的路径访问相同的控制器。 所以我认为这会起作用:
@RestController
@PreAuthorize("hasRole('USER')")
@RequestMapping(value = "/user")
public class UserController {
@RequestMapping(value = "/name", method = RequestMethod.GET)
public String getName() {
return service.getCurrentUserName();
}
}
@RestController
@PreAuthorize("hasRole('ADMIN')")
@RequestMapping(value = "/admin")
public class UserController extends UserController{
}
但我可以使用 USER 角色同时调用 /user/name 和 /admin/name。所以它有点忽略子类上的 PreAuthorize 注释。
有没有什么方法可以重用 UserController 方法,只需为它们添加不同的安全 PreAuthorize 而不为 Admin 重写它们?
【问题讨论】:
标签: spring spring-mvc spring-security spring-annotations