我有一个启用了CSRF保护的Spring网络应用程序。 我可以通过AJAX调用访问RESTful服务,但是当我使用其他应用程序(如httpurlconnection)访问服务时,我会收到401错误(CSRF令牌为空)。我知道要访问RESTful服务,需要在请求头中传递令牌,但是我该如何获取CSRF令牌?
您可以在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();
}
X-CSRF-TOKEN
的标头中。 - holmis83