У меня в контроллере есть такой метод:
@RequestMapping(value="getData", method=RequestMethod.GET)
@ResponseBody
public List<MyDataObj> getData()
{
return myService.getData();
}
Данные возвращаются как JSON или xsl, в зависимости от запроса.
Если лицо, делающее запрос, не авторизовано для доступа к данным, мне нужно перенаправить пользователя на страницу "не авторизован", поэтому что-то вроде этого:
@RequestMapping(value="getData", method=RequestMethod.GET)
@ResponseBody
public List<MyDataObj> getData()
{
if (!isAuthorized())
{
// redirect to notAuthorized.jsp
}
return myService.getData();
}
Все примеры, которые я видел с помощью Spring, требуют, чтобы метод возвращал либо String
, либо ModelAndView
. Я думал об использовании HttpServletResponse.sendRedirect()
, но все мои JSP находятся под WEB-INF и не могут быть доступны напрямую.
Как можно изящно запретить доступ к URL-адресу запроса данных?