- Spring Boot 教程
- Spring Boot - 主页
- Spring Boot - 简介
- Spring Boot - 快速入门
- Spring Boot - 引导
- Spring Boot - Tomcat 部署
- Spring Boot - 构建系统
- Spring Boot - 代码结构
- Spring Bean 和依赖注入
- Spring Boot - 跑步者
- Spring Boot - 应用程序属性
- Spring Boot - 日志记录
- 构建 RESTful Web 服务
- Spring Boot - 异常处理
- Spring Boot - 拦截器
- Spring Boot - Servlet 过滤器
- Spring Boot - Tomcat 端口号
- Spring Boot - Rest 模板
- Spring Boot - 文件处理
- Spring Boot - 服务组件
- Spring Boot - Thymeleaf
- 使用 RESTful Web 服务
- Spring Boot - CORS 支持
- Spring Boot - 国际化
- Spring Boot - 调度
- Spring Boot - 启用 HTTPS
- Spring Boot-Eureka 服务器
- 向 Eureka 注册服务
- Zuul代理服务器和路由
- Spring Cloud配置服务器
- Spring Cloud 配置客户端
- Spring Boot - 执行器
- Spring Boot - 管理服务器
- Spring Boot - 管理客户端
- Spring Boot - 启用 Swagger2
- Spring Boot - 创建 Docker 镜像
- 追踪微服务日志
- Spring Boot - Flyway 数据库
- Spring Boot - 发送电子邮件
- Spring Boot-Hystrix
- Spring Boot - Web Socket
- Spring Boot - 批量服务
- Spring Boot-Apache Kafka
- Spring Boot - Twilio
- Spring Boot - 单元测试用例
- 休息控制器单元测试
- Spring Boot - 数据库处理
- 保护 Web 应用程序的安全
- Spring Boot - 使用 JWT 的 OAuth2
- Spring Boot - Google 云平台
- Spring Boot - Google OAuth2 登录
- Spring Boot 资源
- Spring Boot - 快速指南
- Spring Boot - 有用的资源
- Spring Boot - 讨论
Spring Boot - CORS 支持
跨源资源共享 (CORS) 是一种安全概念,允许限制 Web 浏览器中实现的资源。它可以防止 JavaScript 代码生成或使用针对不同来源的请求。
例如,您的 Web 应用程序在 8080 端口上运行,并且通过使用 JavaScript,您尝试从 9090 端口使用 RESTful Web 服务。在这种情况下,您的网络浏览器将面临跨源资源共享安全问题。
处理这个问题需要两个要求 -
RESTful Web 服务应支持跨域资源共享。
RESTful Web 服务应用程序应允许从 8080 端口访问 API。
在本章中,我们将详细了解如何为 RESTful Web 服务应用程序启用跨源请求。
在控制器方法中启用 CORS
我们需要通过在控制器方法中使用@CrossOrigin注释来设置 RESTful Web 服务的来源。此 @CrossOrigin 注释支持特定的 REST API,但不支持整个应用程序。
@RequestMapping(value = "/products") @CrossOrigin(origins = "http://localhost:8080") public ResponseEntity<Object> getProduct() { return null; }
全局 CORS 配置
我们需要定义所示的 @Bean 配置,以将 CORS 配置支持全局设置到您的 Spring Boot 应用程序。
@Bean public WebMvcConfigurer corsConfigurer() { return new WebMvcConfigurerAdapter() { @Override public void addCorsMappings(CorsRegistry registry) { registry.addMapping("/products").allowedOrigins("http://localhost:9000"); } }; }
下面给出了在主 Spring Boot 应用程序中全局设置 CORS 配置的代码。
package com.tutorialspoint.demo; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.context.annotation.Bean; import org.springframework.web.servlet.config.annotation.CorsRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; @SpringBootApplication public class DemoApplication { public static void main(String[] args) { SpringApplication.run(DemoApplication.class, args); } @Bean public WebMvcConfigurer corsConfigurer() { return new WebMvcConfigurerAdapter() { @Override public void addCorsMappings(CorsRegistry registry) { registry.addMapping("/products").allowedOrigins("http://localhost:8080"); } }; } }
现在,您可以创建在 8080 端口上运行的 Spring Boot Web 应用程序和在 9090 端口上运行的 RESTful Web 服务应用程序。有关 RESTful Web 服务实现的更多详细信息,您可以参考本教程的“使用 RESTful Web 服务”章节。