java 我遇到错误:“无法找到预期的CSRF令牌”- spring 3.1.0

jyztefdp  于 2023-11-15  发布在  Java
关注(0)|答案(1)|浏览(108)

我正在使用Spring Cloud Gateway设置一个API网关。但我只得到“无法找到预期的CSRF令牌”作为答案。
例如,在这个配置中,我得到错误:

@EnableWebFluxSecurity
public class SpringSecurityConfig {

    @Bean
    public SecurityWebFilterChain springSecurityFilterChain(ServerHttpSecurity http) {
        http
                .csrf(csrf -> csrf.disable())
                .authorizeExchange(authorize -> authorize
                        .pathMatchers(HttpMethod.POST, "/**").permitAll()
                        .anyExchange().permitAll()
                );
        return http.build();
    }
}

字符串
我的财产:

server:
  port: 3802

logging:
  level:
    org.hibernate.SQL: DEBUG
    org.hibernate.type: TRACE
eureka:
  client:
    registerWithEureka: true
    fetchRegistry: true
    service-url:
      defaultZone: http://localhost:3800/eureka
spring:
  main:
    web-application-type: reactive
  application:
    name: gateway-service-nixbuy
  cloud:
    gateway:
      routes:
        - id: user-service
          uri: lb://api/user-service
          predicates:
            - Path=/api/**
          filters:
            - StripPrefix=1


如果我使用spring Boot 版本2. 7. 17,一切似乎都工作正常。为什么会发生这种情况?

qrjkbowd

qrjkbowd1#

您必须将@Configuration添加到您的类中,请参阅配置迁移:

添加@Configuration注解

在6.0中,@Configuration@EnableWebSecurity@EnableMethodSecurity@EnableGlobalMethodSecurity@EnableGlobalAuthentication中删除。
要为此做好准备,无论您在何处使用这些注解之一,您可能需要添加@Configuration。例如,@EnableMethodSecurity从以下更改:

@EnableMethodSecurity
public class MyConfiguration {
  // ...
}

字符串
[,,,]
致:

@Configuration
@EnableMethodSecurity
public class MyConfiguration {
  // ...
}

相关问题