-1

我最近将我的应用程序从 webmvc 切换到 webflux,并尝试配置它

@Configuration
@EnableWebFlux
public class WebConfig implements WebFluxConfigurer {

    @Override
    public void addCorsMappings(CorsRegistry registry) {
        registry.addMapping("/**")
                .allowedOrigins("*");
    }

    @Bean
    CorsWebFilter corsWebFilter() {
        var corsConfig = new CorsConfiguration();
        corsConfig.setAllowedOrigins(List.of("*"));

        var source = new UrlBasedCorsConfigurationSource();
        source.registerCorsConfiguration("/**", corsConfig);

        return new CorsWebFilter(source);
    }
}

并尝试添加@CrossOrigin到我的控制器。

但我仍然没有得到跨域响应标头。

有人知道修复吗?

4

1 回答 1

0

我只有 Kotlin 项目,但在 Java 中有类似的语法。基本上,类、注释和方法调用相同。

我将它用于无状态 API 接口。

@EnableWebFluxSecurity
class SecurityConfiguration {

    @Bean
    fun securityWebFilterChain(http: ServerHttpSecurity): SecurityWebFilterChain {
        return http.securityContextRepository(NoOpServerSecurityContextRepository.getInstance())
            .csrf().disable()
            .cors().disable()
            .logout().disable()
            .formLogin().disable()
            .headers { it.cache().disable() }
            .build()
    }
}
于 2021-12-23T11:23:54.083 回答