比方说,我有两种方法做相关但不同的东西@Controller。我想在相同的URL端点上公开它们,但根据安全上下文具有不同的功能。现在我知道,我能有一个映射请求方法和调度,以我的类中不同的效用函数,但我可以线它使Spring MVC的将根据什么来在处理调度给我吗?Spring安全注解是否会影响Spring MVC调用的派发?
作为一个稻草人例如,有代码ROLE_ADMIN和ROLE_USER之间的调度,但我的实际使用情况是块好更加复杂:
@Controller
public class Controller {
@RequestMapping("/api/thing")
@PreAuthorize("hasRole('ROLE_ADMIN')")
public String doAnAdministrativeThing() {
... (admin-priviledge stuff goes here)
}
@RequestMapping("/api/thing")
@PreAuthorize("hasRole('ROLE_USER')")
public String doADifferentThing() {
... (normal-priviledged stuff goes here)
}
}
抢占任何兔子洞:
不,我可能没有任何选择余地具有两种功能不同的URL或有不同的参数或任何“正常” @RequestMapping位
安全上下文差异是复杂的,但可以在@PreAuthorize表达内处理
其实有两个以上不同的情况下派遣上
这是我从文档中获得的印象,但它似乎是我想要检查的一种有用模式。谢谢。 – jricher