Tomcat RestCsrfPreventionFilter - 无法获得CSRF nonce

时间:2018-04-13 14:23:23

标签: tomcat csrf

所以我在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>

1 个答案:

答案 0 :(得分:0)

这里的解决方案很简单。标题为X-CSRF-TOKEN = fetch的任何有效GET请求都将在具有相同名称的响应标题中返回现时值。然后,我在POST或其他后续请求中设置X-CSRF-TOKEN = [NONCE]。