当前位置: 首页 > news >正文

【SpringBoot】WebConfig 跨域配置详细说明

功能概述

WebConfig 是一个 Spring Boot 配置类,主要用于配置跨域资源共享 (CORS) 策略,解决前端应用访问后端 API 时的跨域问题。

package com.example.springboot.config;//根据个人程序需修改import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.cors.CorsConfiguration;
import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
import org.springframework.web.filter.CorsFilter;/*** Web配置类* 用于配置跨域资源共享(CORS)等Web相关设置*/
@Configuration
public class WebConfig {/*** 配置跨域资源共享* 允许前端应用访问后端API* * @return CorsFilter*/@Beanpublic CorsFilter corsFilter() {CorsConfiguration config = new CorsConfiguration();   // 允许所有域名进行跨域调用config.addAllowedOriginPattern("*");		          // 允许跨越发送cookieconfig.setAllowCredentials(true);			          // 放行全部原始头信息config.addAllowedHeader("*");				          // 允许所有请求方法跨域调用config.addAllowedMethod("*");UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();source.registerCorsConfiguration("/**", config);return new CorsFilter(source);}
}

配置详情

跨域配置 (CORS)

通过 corsFilter() 方法配置了一个全局的 CORS 过滤器:

  1. 允许的源:

    • config.addAllowedOriginPattern("*"): 允许所有域名进行跨域访问
    • 注意:在生产环境中,建议替换为具体的前端域名而非通配符,以增强安全性
  2. 凭证支持:

    • config.setAllowCredentials(true): 允许跨域请求携带认证信息(如 cookies)
  3. 请求头设置:

    • config.addAllowedHeader("*"): 允许所有请求头信息
  4. HTTP 方法:

    • config.addAllowedMethod("*"): 允许所有 HTTP 方法(GET, POST, PUT, DELETE 等)
  5. 路径匹配:

    • source.registerCorsConfiguration("/**", config): 对所有路径应用此 CORS 配置

使用建议

  1. 生产环境调整:

    • 建议将 addAllowedOriginPattern("*") 替换为具体的前端域名,例如:
      config.addAllowedOriginPattern("https://yourdomain.com");
      config.addAllowedOriginPattern("https://yourotherdomain.com");
      
  2. 安全性考虑:

    • 如果不需要凭证,应将 setAllowCredentials(false) 以提高安全性
    • 可以根据实际需求限制允许的 HTTP 方法和请求头
  3. 测试环境:

    • 当前配置非常适合开发和测试环境
    • 允许所有来源、方法和头部的配置便于前端开发调试

集成方式

该配置类会自动被 Spring Boot 加载,无需额外配置。只需确保该类位于主应用类所在的包或其子包中。

版本兼容性

  • 适用于 Spring Boot 2.4.x 及以上版本
  • addAllowedOriginPattern 方法在 Spring Boot 2.4.0 引入,替代了之前版本的 addAllowedOrigin

转载吱一声~

http://www.xdnf.cn/news/153883.html

相关文章:

  • 聊聊Spring AI Alibaba的YuQueDocumentReader
  • [Lc day] 滑动窗口 | hash | 前缀和 | 维护区间最值子数组
  • JSP实现用户登录注册系统(三天内自动登录)
  • ASAM MDF 文件格式简介:测量数据的标准化存储
  • 【漫话机器学习系列】225.张量(Tensors)
  • 【Linux网络】构建与优化HTTP请求处理 - HttpRequest从理解到实现
  • 【Android】四大组件之Service
  • WPF实现多语言切换
  • ubantu18.04(Hadoop3.1.3)之Spark安装和编程实践
  • 设计一个关键字统计程序:利用HashMap存储关键字统计信息,对用户输入的关键字进行个数统计。
  • Spring Boot 3.4.5 运行环境需求
  • k8s学习记录(四):节点亲和性
  • 经典题型02——python
  • WebSocket + Protobuf 高性能游戏服务端实现
  • 零基础上手Python数据分析 (24):Scikit-learn 机器学习初步 - 让数据预测未来!
  • Weaviate使用入门:从零搭建向量数据库的完整指南
  • 区块链VS传统数据库:金融数据存储的“信任”与“效率”博弈
  • Dify 使用 excel 或者 csv 文件创建知识库
  • 跟着deepseek学golang--Go vs Java vs JavaScript三语言的差异
  • 计算机视觉与深度学习 | LSTM原理及与卡尔曼滤波的融合
  • C++17 折叠表达式
  • IP数据报发送和转发的过程
  • 腾讯云物联网平台
  • Win7 SSL证书问题
  • 小程序Npm package entry file not found?
  • 总账主数据——Part 2 科目-2
  • 【落羽的落羽 C++】vector
  • 算法习题-力扣446周赛题解
  • 通过门店销售明细表用Python Pandas得到每月每个门店的销冠和按月的同比环比数据
  • 搜广推校招面经八十二