我正在使用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,一切似乎都工作正常。为什么会发生这种情况?
1条答案
按热度按时间qrjkbowd1#
您必须将
@Configuration
添加到您的类中,请参阅配置迁移:添加@Configuration注解
在6.0中,
@Configuration
从@EnableWebSecurity
、@EnableMethodSecurity
、@EnableGlobalMethodSecurity
和@EnableGlobalAuthentication
中删除。要为此做好准备,无论您在何处使用这些注解之一,您可能需要添加
@Configuration
。例如,@EnableMethodSecurity
从以下更改:字符串
[,,,]
致:
型