最近手贱,把一个项目的springboot版本由2.3升级到了2.4.1,结果开发时跨域失效了。查看接口日志,报错:
java.lang.IllegalArgumentException: When allowCredentials is true, allowedOrigins cannot contain the special value "*"since that cannot be set on the "Access-Control-Allow-Origin" response header. To allow credentials to a set of origins, list them explicitly or consider using "allowedOriginPatterns" instead. at org.springframework.web.cors.CorsConfiguration.validateAllowCredentials(CorsConfiguration.java:453) at org.springframework.web.cors.CorsConfiguration.checkOrigin(CorsConfiguration.java:557) at org.springframework.web.cors.DefaultCorsProcessor.checkOrigin(DefaultCorsProcessor.java:174)
原来开发版本的跨域这样设置:
@Bean public FilterRegistrationBean<CorsFilter> corsFilter() { CorsConfiguration config = new CorsConfiguration(); config.setAllowCredentials(true); config.addAllowedOrigin("*"); config.addAllowedHeader("*"); config.addAllowedMethod("*"); UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource(); source.registerCorsConfiguration("/**", config); FilterRegistrationBean<CorsFilter> bean = new FilterRegistrationBean<CorsFilter>(new CorsFilter(source)); bean.setOrder(Ordered.HIGHEST_PRECEDENCE); return bean; }
开发版本为了让所有web开发人员能访问,直接config.addAllowedOrigin("*"),到spring boot 2.4.1版本(对应spring5.3),allowCredentials为true的情况下,不允许addAllowedOrigin为“*”。当然可以使用allowedOriginPatterns代替。
@Bean public FilterRegistrationBean<CorsFilter> corsFilter() { CorsConfiguration config = new CorsConfiguration(); config.setAllowCredentials(true); List<String> allowedOriginPatterns = new ArrayList<>(); allowedOriginPatterns.add("*"); config.setAllowedOriginPatterns(allowedOriginPatterns); // config.addAllowedOrigin("*"); config.addAllowedHeader("*"); config.addAllowedMethod("*"); UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource(); source.registerCorsConfiguration("/**", config); FilterRegistrationBean<CorsFilter> bean = new FilterRegistrationBean<CorsFilter>(new CorsFilter(source)); bean.setOrder(Ordered.HIGHEST_PRECEDENCE); logger.warn("======CorsFilter injection=====AllowedOrigin: *===="); return bean; }
相关推荐
项目介绍 项目主要使用的是Spring+SpirngMvc+SpringBoot敏捷开发系统架构,使用百度智能云提供人脸识别接口 技术选型 SpringBoot 2.4.1 Spring SpringMvc Mysql 5.7 BaiduAip 4.15.1 Fastjson 1.2.70
本示例将探讨SignalR如何处理跨域通信,这是一个常见的Web开发需求,因为通常情况下,浏览器出于安全考虑会限制不同源之间的通信。 跨域(CORS)是Web应用程序中的一项机制,允许浏览器执行原本受限的HTTP请求。...
nacos-server-2.4.1.zip 注册及配置中心
- **Zookeeper Quorum**:用于协调NameNode之间的选举过程,以及监控NameNode的状态变化。 - **ZKFC (Zookeeper Failover Controller)**:运行在每个NameNode上,用于监控NameNode的状态并与Zookeeper进行交互,以...
apktool2.4.1版本jar,在官网拖下来太慢了,因此找了个给大家下载,这个是当前最新版本2.4.1,解包出现问题就更新一下apktool,一般问题得以解决。
本文将详细探讨APKTool的最新版2.4.1,以及它在反编译过程中的关键作用。 APKTool是由IzzySoft开发的一款开源工具,其主要功能是对APK进行反编译,将Dalvik字节码(DEX)转换为人类可读的Smali语言,同时解压缩并...
《 Bison 2.4.1 for Windows:解析器生成器详解及应用》 Bison,全称为GNU Bison,是一款强大的解析器生成器,主要用于构建计算机语言的语法分析器。在Windows环境中,Bison 2.4.1版本的发布为开发者提供了一款稳定...
《Hadoop 2.4.1版本:大数据处理的核心与实践》 Hadoop,作为大数据处理领域的核心组件,自诞生以来就备受关注。Hadoop 2.4.1是其发展过程中的一个重要版本,它在稳定性、性能和可扩展性上都有显著提升,为大数据的...
赠送jar包:kafka-clients-2.4.1.jar; 赠送原API文档:kafka-clients-2.4.1-javadoc.jar; 赠送源代码:kafka-clients-2.4.1-sources.jar; 赠送Maven依赖信息文件:kafka-clients-2.4.1.pom; 包含翻译后的API文档...
赠送jar包:kafka-clients-2.4.1.jar; 赠送原API文档:kafka-clients-2.4.1-javadoc.jar; 赠送源代码:kafka-clients-2.4.1-sources.jar; 赠送Maven依赖信息文件:kafka-clients-2.4.1.pom; 包含翻译后的API文档...
《深入解析bison-2.4.1:构建解析器的利器》 “bison-2.4.1.tar.gz”这个压缩包文件是开源软件项目bison的一个特定版本,版本号为2.4.1。bison是一个强大的语法分析器生成器,它基于Yacc(Yet Another Compiler-...
3. 安装过程:安装python-2.4.1.msi时,用户通常会经历一系列步骤,如选择安装路径、是否设置环境变量、是否创建桌面快捷方式等。安装完成后,系统会自动配置Python路径,使得用户可以在命令行中通过`python`命令...
标题 "protobuf-2.4.1.zip" 指向的是 Protocol Buffers(简称protobuf)的一个版本2.4.1的归档文件。Protocol Buffers是Google开发的一种数据序列化协议,它允许开发者定义数据结构,然后生成能够在各种数据平台之间...
protobuf-java-2.4.1.jar
例如,开发者可以通过API调用设置播放速度、添加事件监听器、控制视频流的质量切换,甚至实现自定义的播放控制界面。 TCPlayer作为开源项目,可能拥有活跃的社区支持,提供了详细的文档、示例代码和问题解答,帮助...
《Windows环境下Kafka 2.12-2.4.1的详细指南》 Kafka是一款高吞吐量、分布式的消息发布与订阅系统,由LinkedIn开发并贡献给了Apache软件基金会。在本文中,我们将深入探讨如何在Windows操作系统上安装和使用最新版...
Free。Docker-compose-2.4.1安装包:Linux。
4. **兼容性**:尽管protobuf通常努力保持向后兼容,但有时可能会有不兼容的变化,需要开发者注意升级时的代码调整。 5. **新特性**:例如,2.5.0可能引入了在2.4.1中不存在的新特性,如更强的数据类型支持、更好的...