我在將控制器添加安全註釋時遇到了很多問題。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";
}
}
任何人都可以幫助我理解這種行爲?