• Spring Boot 如何配置 CORS 支持


    Spring Boot 如何配置 CORS 支持

    跨域资源共享(CORS)是一种重要的网络安全策略,用于限制浏览器在不同域之间的HTTP请求。Spring Boot提供了简单而强大的方法来配置CORS支持,以确保您的应用程序能够与其他域的资源进行安全交互。本文将介绍如何在Spring Boot中配置CORS支持,并附带相应的示例代码。

    在这里插入图片描述

    什么是CORS?

    CORS是一种网络安全机制,用于控制跨源HTTP请求的访问权限。在默认情况下,浏览器会禁止跨源请求,以防止潜在的安全风险。CORS通过在HTTP响应头中添加特定的标头来启用跨域请求,这些标头指示浏览器允许请求来自不同源的资源。通过配置CORS支持,您可以明确指定哪些源可以访问您的应用程序的资源。

    Spring Boot中的CORS配置

    Spring Boot提供了一种简单的方式来配置CORS支持,您只需在应用程序的配置文件中添加相应的属性即可。以下是一些常用的CORS配置属性:

    • spring.mvc.cors.allowed-origins:允许跨域请求的来源。您可以指定一个或多个域,例如 https://example.com*(表示允许所有来源)。

    • spring.mvc.cors.allowed-methods:允许的HTTP方法,例如 GET、POST、PUT、DELETE 等。

    • spring.mvc.cors.allowed-headers:允许的HTTP标头,例如 Authorization、Content-Type 等。

    • spring.mvc.cors.exposed-headers:在响应中暴露给客户端的标头。

    • spring.mvc.cors.allow-credentials:是否允许携带身份验证信息(如cookies)进行跨域请求。

    • spring.mvc.cors.max-age:预检请求的最大缓存时间,以秒为单位。

    下面是一个示例配置,您可以将这些属性添加到您的application.propertiesapplication.yml文件中:

    # 允许所有来源进行跨域请求
    spring.mvc.cors.allowed-origins=*
    # 允许的HTTP方法
    spring.mvc.cors.allowed-methods=GET,POST,PUT,DELETE
    # 允许的HTTP标头
    spring.mvc.cors.allowed-headers=Authorization,Content-Type
    # 允许携带身份验证信息
    spring.mvc.cors.allow-credentials=true
    # 预检请求的最大缓存时间
    spring.mvc.cors.max-age=3600
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    示例代码

    为了演示如何在Spring Boot应用程序中配置CORS支持,让我们创建一个简单的RESTful API,并在其中配置CORS。首先,创建一个Spring Boot项目,然后添加以下代码。

    1. 创建一个简单的Controller

    @RestController
    @RequestMapping("/api")
    public class HelloWorldController {
    
        @GetMapping("/hello")
        public String sayHello() {
            return "Hello, World!";
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    2. 添加CORS配置

    在应用程序的配置文件中添加CORS配置,如上所述。

    3. 运行应用程序

    运行您的Spring Boot应用程序,并确保它在端口8080上运行。

    4. 发起跨域请求

    现在,您可以使用JavaScript或任何其他工具来测试跨域请求。以下是一个示例使用JavaScript的代码:

    fetch('http://localhost:8080/api/hello', {
        method: 'GET',
        headers: {
            'Authorization': 'Bearer token',
            'Content-Type': 'application/json'
        }
    })
    .then(response => response.text())
    .then(data => console.log(data))
    .catch(error => console.error('Error:', error));
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    这段代码将向您的Spring Boot应用程序发出一个跨域GET请求,并在控制台中输出响应。

    总结

    通过简单的配置,Spring Boot使CORS支持变得容易。通过明确指定允许的来源、方法和标头,您可以确保您的应用程序能够安全地与其他域的资源进行交互。在开发Web应用程序时,务必考虑到CORS配置,以提高安全性并确保良好的用户体验。

    希望本文对您有所帮助,使您能够成功配置Spring Boot应用程序的CORS支持。如果您需要更多帮助或有其他问题,请随时提问。

  • 相关阅读:
    安鸾平台 文件上传
    c++下的ros通信(cmake的报错问题多)
    为什么pca分量没有关联
    OpenCV4(C++)—— 几何图形的绘制
    网络安全(黑客技术)—0基础小白自学
    架构师选择题--信息安全技术(系统安全)
    Meta&伯克利基于池化自注意力机制提出通用多尺度视觉Transformer,在ImageNet分类准确率达88.8%!开源...
    LeetCode每日一练 —— 剑指Offer 56 数组中数字出现的次数
    【【萌新的FPGA学习之实战流水灯】】
    彻底搞懂nodejs事件循环
  • 原文地址:https://blog.csdn.net/stormjun/article/details/133297531