Как справиться с защитой CSRF с помощью веб-сервисов Spring RESTful?
У меня есть веб-приложение Spring с включенной защитой CSRF. Я могу получить доступ к сервису RESTful через вызовы AJAX, но когда я обращаюсь к сервису с помощью других приложений, таких как httpurlconnection, я получаю ошибку 401 (нулевой токен CSRF).
Я понимаю, что для доступа к службе RESTful мне нужно передать токен в заголовке запроса, но как я могу получить токен CSRF?
1 ответ
Решение
В Spring MVC вы можете создать отображение, которое получает токен CSRF:
@RequestMapping(value="/csrf-token", method=RequestMethod.GET)
public @ResponseBody String getCsrfToken(HttpServletRequest request) {
CsrfToken token = (CsrfToken)request.getAttribute(CsrfToken.class.getName());
return token.getToken();
}