所以我在Tomcat中为我的REST API启用了RestCsrfPreventionFilter。在较高的层面上,它的工作大多是正确的。由于请求中没有CSRF nonce,任何修改我的应用程序状态(即POST,PUT等)的端点都会被拒绝。
我遇到的问题是我似乎无法开始使用CSRF nonce。我没有尝试过的请求已将此令牌返回给我。如果我无法从服务器获取CSRF nonce,我该怎么回来呢?
我很感激那些比我更熟悉这个系统的人的帮助。我经历过那里的每一份文件。我只是看不出任何迹象表明我应该如何开始使用nonce。
感谢。
过滤器配置:
<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>
答案 0 :(得分:0)
这里的解决方案很简单。标题为X-CSRF-TOKEN = fetch的任何有效GET请求都将在具有相同名称的响应标题中返回现时值。然后,我在POST或其他后续请求中设置X-CSRF-TOKEN = [NONCE]。