2014-07-07 114 views
1

我正在使用Spring MVC编写REST API。我试图通过POST请求访问控制器方法。REST请求中缺少CSRF令牌

我总是收到一个错误403

Invalid CSRF Token '' was found on the request parameter '_csrf' or header 'X-CSRF-TOKEN'. 

如何将我的REST请求中提供一个令牌CSRF? 我试图使用在应用程序启动期间显示的default security password作为_csrf的值,但它不成功。

我该如何检索CSRF令牌,并且在_csrf参数中发送令牌是否正确?

回答

1

您在提出请求时需要提供正确的标头和CSRF令牌,例如

request.setRequestHeader('${_csrf.headerName}', '${_csrf.token}'); 

您也可以发送令牌使用_csrf.parameterName请求参数。

+0

好吧,但我不明白如何检索令牌? – mhmpl

+1

您可以在文档的任何位置(元标记,JavaScript变量等)使用'$ {_ csrf.token}'嵌入标记。确保Spring Security使用的过滤器已被应用 – Bart

+0

也许我得到* retrieve *参数错误。你究竟是什么意思? – Bart