From 5e322b03e3329832b2088562d15a2995c3fcd559 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=9A=E5=BF=97=E8=B1=AA123?= <14699252+shang-zhihao-123@user.noreply.gitee.com> Date: Fri, 29 Nov 2024 15:54:57 +0800 Subject: [PATCH] =?UTF-8?q?=E8=BF=9E=E6=8E=A5=E5=89=8D=E7=AB=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- doc/策略 | 4 ++ .../gateway/config/properties/CorsConfig.java | 58 +++++++++++++++++++ .../controller/ProjectInfoController.java | 2 +- 3 files changed, 63 insertions(+), 1 deletion(-) create mode 100644 doc/策略 create mode 100644 muyu-gateway/src/main/java/com/muyu/gateway/config/properties/CorsConfig.java diff --git a/doc/策略 b/doc/策略 new file mode 100644 index 0000000..e401979 --- /dev/null +++ b/doc/策略 @@ -0,0 +1,4 @@ +1.图片,金额,商品描述 +2.拼团 +3.评价 +4.购买方式 diff --git a/muyu-gateway/src/main/java/com/muyu/gateway/config/properties/CorsConfig.java b/muyu-gateway/src/main/java/com/muyu/gateway/config/properties/CorsConfig.java new file mode 100644 index 0000000..94c50c6 --- /dev/null +++ b/muyu-gateway/src/main/java/com/muyu/gateway/config/properties/CorsConfig.java @@ -0,0 +1,58 @@ +package com.muyu.gateway.config.properties; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.http.HttpHeaders; +import org.springframework.http.HttpMethod; +import org.springframework.http.HttpStatus; +import org.springframework.http.server.reactive.ServerHttpRequest; +import org.springframework.http.server.reactive.ServerHttpResponse; +import org.springframework.web.cors.reactive.CorsUtils; +import org.springframework.web.server.ServerWebExchange; +import org.springframework.web.server.WebFilter; +import org.springframework.web.server.WebFilterChain; +import reactor.core.publisher.Mono; + +/** + * 跨域配置 + * + * @author ruoyi + */ +@Configuration +public class CorsConfig +{ + /** + * 这里为支持的请求头,如果有自定义的header字段请自己添加 + */ + private static final String ALLOWED_HEADERS = "X-Requested-With, Content-Type, Authorization, credential, X-XSRF-TOKEN, token, Admin-Token, App-Token"; + private static final String ALLOWED_METHODS = "GET,POST,PUT,DELETE,OPTIONS,HEAD"; + private static final String ALLOWED_ORIGIN = "*"; + private static final String ALLOWED_EXPOSE = "*"; + private static final String MAX_AGE = "18000L"; + + @Bean + public WebFilter corsFilter() + { + return (ServerWebExchange ctx, WebFilterChain chain) -> { + ServerHttpRequest request = ctx.getRequest(); + if (CorsUtils.isCorsRequest(request)) + { + ServerHttpResponse response = ctx.getResponse(); + HttpHeaders headers = response.getHeaders(); + headers.add("Access-Control-Allow-Headers", ALLOWED_HEADERS); + headers.add("Access-Control-Allow-Methods", ALLOWED_METHODS); + headers.add("Access-Control-Allow-Origin", ALLOWED_ORIGIN); + headers.add("Access-Control-Expose-Headers", ALLOWED_EXPOSE); + headers.add("Access-Control-Max-Age", MAX_AGE); + headers.add("Access-Control-Allow-Credentials", "true"); + if (request.getMethod() == HttpMethod.OPTIONS) + { + response.setStatusCode(HttpStatus.OK); + return Mono.empty(); + } + } + return chain.filter(ctx); + }; + } +} + diff --git a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/controller/ProjectInfoController.java b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/controller/ProjectInfoController.java index f1e3d62..8c948b8 100644 --- a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/controller/ProjectInfoController.java +++ b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/controller/ProjectInfoController.java @@ -48,7 +48,7 @@ public class ProjectInfoController extends BaseController { * 查询商品信息列表 */ @ApiOperation("获取商品信息列表") - @RequiresPermissions("product:info:list") +// @RequiresPermissions("product:info:list") @GetMapping("/list") public Result> list(ProjectInfoQueryReq projectInfoQueryReq) { startPage();