У меня было много проблем с добавлением защищенных аннотаций в мои контроллеры.
оказывается, что позволить моему контроллеру реализовать 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 - Нет сопоставления
найдено для HTTP-запроса с URI [...]
удаление аннотации @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";
}
}
Может кто-нибудь помочь мне понять это поведение?