Spring Cloud Gateway 中配置跨域
- 一、代码配置方式配置跨域
- 二、配置文件方式配置跨域
开发高并发系统时有三把利器用来保护系统:缓存、降级和限流。API网关作为所有请求的入口,请求量大,我们可以通过对并发访问的请求进行限速来保护系统的可用性。
在Spring Cloud Gateway 中配置跨域有两种方式,分别是代码配置方式和配置文件方式。
一、代码配置方式配置跨域
代码配置方式配置跨域,代码清单如下所示:
@Configuration
public class CorsConfig {@Beanpublic WebFilter corsFilter() {return (ServerWebExchange ctx, WebFilterChain chain) -> {ServerHttpRequest request = ctx.getRequest();if(CorsUtils.isCorsRequest(request)) {HttpHeaders requestHeaders = request.getHeaders();ServerHttpResponse response = ctx.getResponse();HttpMethod requestMethod = requestHeaders.getAccessControlRequestMethod();HttpHeaders headers = response.getHeaders();headers.add(HttpHeaders.ACCESS_CONTROL_ALLOW_ORIGIN, requestHeaders.getOrigin());headers.addAll(HttpHeaders.ACCESS_CONTROL_ALLOW_HEADERS, requestHeaders.getAccessControlRequestHeaders());if(requestMethod != null) {headers.add(HttpHeaders.ACCESS_CONTROL_ALLOW_METHODS, requestMethod.name());}headers.add(HttpHeaders.ACCESS_CONTROL_ALLOW_CREDENTIALS, "true");headers.add(HttpHeaders.ACCESS_CONTROL_EXPOSE_HEADERS, "*");if(request.getMethod() == HttpMethod.OPTIONS){response.setStatusCode(HttpStatus.OK);return Mono.empty();}}return chain.filter(ctx);};}
}
二、配置文件方式配置跨域
配置文件方式配置跨域,代码清单如下所示:
spring:cloud:gateway:globalcors:corsConfigurations:'[/**]':allowedOrigins: "*"exposedHeaders:- content-typeallowedHeaders:- content-typeallowCredentials: trueallowedMethods:- GET- OPTIONS- PUT- DELETE- POST
本文完结!