From 7cdea9831fa9b97fe672073abbe80d30edab0ae0 Mon Sep 17 00:00:00 2001 From: 无关风月 <443237572@qq.com> Date: 星期四, 02 一月 2025 14:45:14 +0800 Subject: [PATCH] 定时任务 --- common/src/main/java/com/jilongda/common/config/CorsConfig.java | 80 ++++++++++++++++++++++++++++++--------- 1 files changed, 61 insertions(+), 19 deletions(-) diff --git a/common/src/main/java/com/jilongda/common/config/CorsConfig.java b/common/src/main/java/com/jilongda/common/config/CorsConfig.java index 5550eff..4e2bcd9 100644 --- a/common/src/main/java/com/jilongda/common/config/CorsConfig.java +++ b/common/src/main/java/com/jilongda/common/config/CorsConfig.java @@ -1,10 +1,26 @@ package com.jilongda.common.config; +import org.springframework.beans.factory.annotation.Autowired; 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.MediaType; +import org.springframework.http.server.reactive.ServerHttpRequest; +import org.springframework.http.server.reactive.ServerHttpResponse; import org.springframework.web.cors.CorsConfiguration; import org.springframework.web.cors.UrlBasedCorsConfigurationSource; +import org.springframework.web.cors.reactive.CorsUtils; import org.springframework.web.filter.CorsFilter; +import org.springframework.web.server.ServerWebExchange; +import org.springframework.web.server.WebFilter; +import org.springframework.web.server.WebFilterChain; +import org.springframework.web.servlet.config.annotation.CorsRegistry; +import org.springframework.web.servlet.function.RequestPredicates; +import org.springframework.web.servlet.function.RouterFunction; +import org.springframework.web.servlet.function.RouterFunctions; +import reactor.core.publisher.Mono; import java.util.Collections; @@ -24,30 +40,56 @@ */ @Configuration public class CorsConfig { - private CorsConfiguration buildConfig() { - CorsConfiguration corsConfiguration = new CorsConfiguration(); - //1.允许任何来源 - corsConfiguration.setAllowedOriginPatterns(Collections.singletonList("*")); - //2.允许任何请求头 - corsConfiguration.addAllowedHeader(CorsConfiguration.ALL); - //3.允许任何方法 - corsConfiguration.addAllowedMethod(CorsConfiguration.ALL); - //4.允许凭证 - corsConfiguration.setAllowCredentials(true); + /** + * 这里为支持的请求头,如果有自定义的header字段请自己添加 + */ + private static final String ALLOWED_HEADERS = "X-Requested-With, Content-Type, Authorization, credential, X-XSRF-TOKEN, token, username, client, request-origion"; + private static final String ALLOWED_METHODS = "GET,POST,PUT,DELETE"; + private static final String ALLOWED_ORIGIN = "*"; + private static final String ALLOWED_EXPOSE = "*"; + private static final String MAX_AGE = "18000L"; - - - return corsConfiguration; + /** + * 跨域配置 + */ + @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", "false"); + if (request.getMethod() == HttpMethod.OPTIONS) + { + response.setStatusCode(HttpStatus.OK); + return Mono.empty(); + } + } + return chain.filter(ctx); + }; } @Bean - public CorsFilter corsFilter() { - UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource(); - // 对接口配置跨域设置 -// source.registerCorsConfiguration("/v2/api-docs/**", buildConfig()); - source.registerCorsConfiguration("/**", buildConfig()); - return new CorsFilter(source); + public CorsRegistry addCorsMappings() { + return new CorsRegistry(); + } + + @Bean + public void addCorsMappings(CorsRegistry registry) { + registry.addMapping("/**") + .allowedOriginPatterns("*") + .allowedMethods("*") + .maxAge(3600) + .allowCredentials(true); } } -- Gitblit v1.7.1