在csrfFilter中初始化requireCsrfProtectionMatcher的依据是什么

On what basis requireCsrfProtectionMatcher is initialised in csrfFilter

CsrfFilter 有验证

if (!this.requireCsrfProtectionMatcher.matches(request)) {
            filterChain.doFilter(request, response);
            return;
        }

在上面的代码片段中,this.requireCsrfProtectionMatcher 正在初始化为 AndRequestMatcher。但我只想使用 DefaultRequiresCsrfMatcher。任何人都可以提供有关此的更多信息吗? 我的安全配置

 @Override
    protected void configure(HttpSecurity http) throws Exception {
          http.csrf().and().
          cors().and()
            .sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS)
            .and()
            .authorizeRequests()
            .antMatchers("/rest/open/**").permitAll()
            .and().authorizeRequests()
            .antMatchers("/**").authenticated()
            .anyRequest().permitAll()
            .and()
            .oauth2ResourceServer()
            .jwt()
            .jwtAuthenticationConverter(getJwtAuthoritiesConverter());
            

    }

requireCsrfProtectionMatcher 正在用 AndRequestMatcher 初始化,因为您正在使用 oauth2ResourceServer().jwt()

oauth2ResourceServer DSL 告诉 CsrfFilter 忽略包含 Bearer 令牌的请求。您可以在 source code.

中查看

由于 JWT 身份验证是无状态的,因此您不需要在请求中使用 CSRF 令牌。