【问题标题】:Missing CSRF token in REST requestREST 请求中缺少 CSRF 令牌
【发布时间】:2014-07-08 02:38:51
【问题描述】:

我正在使用 Spring MVC 编写一个 REST API。我正在尝试通过 POST 请求访问控制器方法。

我总是收到403error:

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

如何在我的 REST 请求中传递 CSRF 令牌? 我尝试使用在应用程序启动期间显示的default security password 作为_csrf 的值,但没有成功。

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

【问题讨论】:

    标签: spring rest csrf


    【解决方案1】:

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

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

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

    【讨论】:

    • 好的,但我不明白如何检索令牌?
    • 您可以使用${_csrf.token} 将令牌嵌入文档中的任何位置(元标记、javascript 变量等)。确保应用了 Spring Security 使用的过滤器
    • 也许我弄错了 retrieve 参数。你到底是什么意思?
    • 不,没关系!我已将令牌放入 标签中!谢谢!
    猜你喜欢
    • 2017-12-19
    • 2015-04-08
    • 2021-12-28
    • 2018-05-04
    • 1970-01-01
    • 1970-01-01
    • 2019-06-01
    • 1970-01-01
    • 2019-07-06
    相关资源
    最近更新 更多