我在将控制器添加安全注释时遇到了很多问题。Spring-Security 3/Spring MVC和令人恐惧的@ Secured/RequestMapping
事实证明,让我的控制器实现一个InitializingBean是一个坏主意。
public class MyController implements InitializingBean {
@Secured(value="ROLE_ADMIN")
@RequestMapping(method = RequestMethod.GET, value = "/{id}/edit")
public String getView(Model model, @PathVariable("id") long id) {
return "some view";
}
}
这个失败:
WARN PageNotFound:962 - 未找到与URI HTTP请求映射 [...]
去除@Secured注释会的工作,但显然我不想这样做。 在网络上浪费大量时间之后,我发现工作和非工作控制器之间的最后差异在于它实现了InitializingBean接口。现在这个工作就像一个魅力:
public class MyController{
@Secured(value="ROLE_ADMIN")
@RequestMapping(method = RequestMethod.GET, value = "/{id}/edit")
public String getView(Model model, @PathVariable("id") long id) {
return "some view";
}
}
任何人都可以帮助我理解这种行为?