我有一个启用了CSRF保护的Spring Web应用程序。我可以通过AJAX调用访问RESTful服务,但是当我使用httpurlconnection等其他应用程序访问服务时,我收到401错误(CSRF令牌为null)。
我理解为了访问RESTful服务,我需要在请求标头中传递令牌,但是如何获取CSRF令牌?
答案 0 :(得分:19)
您可以在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();
}