繁体   English   中英

使用 spring webflux 应用程序启用 CrossOrigin 访问

[英]enabling CrossOrigin access with spring webflux application

我最近将我的应用程序从 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添加到我的controller。

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

有人知道修复吗?

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

我将它用于无状态 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()
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM