• 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支持。如果您需要更多帮助或有其他问题,请随时提问。

  • 相关阅读:
    【数据结构】对称二叉树 && 另一颗树的子树(六)
    零基础自学javase黑马课程第九天数组练习
    掌握优先级队列:提升效率的关键技巧
    106道Java并发和多线程基础面试题大集合(2w字),这波面试稳了~
    MySQL查询表结构方法
    赴日开发工程师工作怎么找?
    Redis实现API访问频率限制
    typescript-补充内容(十一)
    全球最快下载工具 XDM
    相控阵天线(七):常规平面阵列分布(矩形阵列、三角栅格、六边形阵列和圆形阵列)
  • 原文地址:https://blog.csdn.net/stormjun/article/details/133297531