【发布时间】:2018-04-13 14:23:22
【问题描述】:
我在 Tomcat 中为我的 REST API 启用了 RestCsrfPreventionFilter。在较高的水平上,它基本上是正确的。由于请求中没有 CSRF 随机数,任何修改我的应用程序状态(即 POST、PUT 等)的端点都会被拒绝。
我遇到的问题是我似乎无法从 CSRF 随机数开始。我尝试过的任何请求都没有将此令牌返回给我。如果我无法从服务器获取 CSRF 随机数,我应该如何返回它?
我已经浏览了那里的每一份文档。我只是看不到任何迹象表明我应该如何获得随机数。
过滤器配置:
<filter>
<filter-name>RestCSRF</filter-name>
<filter-class>org.apache.catalina.filters.RestCsrfPreventionFilter</filter-class>
<init-param>
<param-name>denyStatus</param-name>
<param-value>403</param-value>
</init-param>
<init-param>
<param-name>pathsAcceptingParams</param-name>
<param-value>/rest/*</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>RestCSRF</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
【问题讨论】:
-
你是如何尝试获得随机数的?
-
你能解决这个问题吗?我正在使用 Tomcat 8.5 并且有同样的问题。通过发送标头“X-CSRF-Token”设置为“FETCH”的 GET 请求来请求随机数