如何在 spring 安全中发送一些没有 csrf 令牌的 jsp 表单

How can I send some jsp forms without csrf token in spring security

我在 Web 项目的 spring 安全 xml 文件中使用 <csrf/> 标记。通过这个标签,我必须以 jsp 页面中使用的每种形式发送 csrf 令牌。

Spring安全xml代码:

    <http auto-config="false" use-expressions="true" disable-url-rewriting="true">

    <intercept-url pattern="/**" access="isAuthenticated()" />

    <form-login
    <!--login tags -->
    </>

    <csrf/>
    </http>

但是有一种情况我不想在 jsp 页面中发送特定表单的 csrf 令牌,我该怎么做。

我在 xml 文件中使用了以下标签

<http pattern="/specific_url/**">
  <csrf disabled="true"/>
</http>

并得到错误:“cvc-complex-type.3.2.2:属性 'disabled' 不允许出现在元素 'csrf' 中”。 =15=]

对于 Spring 安全版本 3.2.x,使用 XML 配置时默认禁用 CSRF 保护。所以只需从配置中删除 csrf 元素,它就会关闭。

从版本 4 开始,CSRF 保护在默认情况下 启用,因此如果您升级,您将需要相关建议的代码段。