mirror of
				https://github.com/continew-org/continew-admin.git
				synced 2025-10-31 00:57:13 +08:00 
			
		
		
		
	优化:优化跨域配置
This commit is contained in:
		| @@ -18,6 +18,8 @@ package top.charles7c.cnadmin.common.config; | |||||||
|  |  | ||||||
| import java.util.concurrent.TimeUnit; | import java.util.concurrent.TimeUnit; | ||||||
|  |  | ||||||
|  | import lombok.RequiredArgsConstructor; | ||||||
|  |  | ||||||
| import org.springframework.context.annotation.Bean; | import org.springframework.context.annotation.Bean; | ||||||
| import org.springframework.context.annotation.Configuration; | import org.springframework.context.annotation.Configuration; | ||||||
| import org.springframework.http.CacheControl; | import org.springframework.http.CacheControl; | ||||||
| @@ -28,6 +30,8 @@ import org.springframework.web.servlet.config.annotation.EnableWebMvc; | |||||||
| import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; | import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; | ||||||
| import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; | import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; | ||||||
|  |  | ||||||
|  | import top.charles7c.cnadmin.common.config.properties.CorsProperties; | ||||||
|  |  | ||||||
| /** | /** | ||||||
|  * Web MVC 配置 |  * Web MVC 配置 | ||||||
|  * |  * | ||||||
| @@ -36,8 +40,11 @@ import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; | |||||||
|  */ |  */ | ||||||
| @EnableWebMvc | @EnableWebMvc | ||||||
| @Configuration | @Configuration | ||||||
|  | @RequiredArgsConstructor | ||||||
| public class WebMvcConfiguration implements WebMvcConfigurer { | public class WebMvcConfiguration implements WebMvcConfigurer { | ||||||
|  |  | ||||||
|  |     private final CorsProperties corsProperties; | ||||||
|  |  | ||||||
|     /** |     /** | ||||||
|      * 静态资源处理器配置 |      * 静态资源处理器配置 | ||||||
|      */ |      */ | ||||||
| @@ -54,13 +61,17 @@ public class WebMvcConfiguration implements WebMvcConfigurer { | |||||||
|     @Bean |     @Bean | ||||||
|     public CorsFilter corsFilter() { |     public CorsFilter corsFilter() { | ||||||
|         CorsConfiguration config = new CorsConfiguration(); |         CorsConfiguration config = new CorsConfiguration(); | ||||||
|  |         // 配置为 true 后则必须配置允许跨域的域名,且不允许配置为 * | ||||||
|         config.setAllowCredentials(true); |         config.setAllowCredentials(true); | ||||||
|  |         // 设置跨域允许时间 | ||||||
|         config.setMaxAge(1800L); |         config.setMaxAge(1800L); | ||||||
|  |  | ||||||
|         // 允许跨域配置 |         // 配置允许跨域的域名 | ||||||
|         config.addAllowedOriginPattern("*"); |         corsProperties.getAllowedOrigins().forEach(config::addAllowedOrigin); | ||||||
|         config.addAllowedHeader("*"); |         // 配置允许跨域的请求方式 | ||||||
|         config.addAllowedMethod("*"); |         corsProperties.getAllowedMethods().forEach(config::addAllowedMethod); | ||||||
|  |         // 配置允许跨域的请求头 | ||||||
|  |         corsProperties.getAllowedHeaders().forEach(config::addAllowedHeader); | ||||||
|  |  | ||||||
|         // 添加映射路径,拦截一切请求 |         // 添加映射路径,拦截一切请求 | ||||||
|         UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource(); |         UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource(); | ||||||
|   | |||||||
| @@ -0,0 +1,52 @@ | |||||||
|  | /* | ||||||
|  |  * Copyright (c) 2022-present Charles7c Authors. All Rights Reserved. | ||||||
|  |  * | ||||||
|  |  * Licensed under the Apache License, Version 2.0 (the "License"); | ||||||
|  |  * you may not use this file except in compliance with the License. | ||||||
|  |  * You may obtain a copy of the License at | ||||||
|  |  * | ||||||
|  |  *     http://www.apache.org/licenses/LICENSE-2.0 | ||||||
|  |  * | ||||||
|  |  * Unless required by applicable law or agreed to in writing, software | ||||||
|  |  * distributed under the License is distributed on an "AS IS" BASIS, | ||||||
|  |  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||||||
|  |  * See the License for the specific language governing permissions and | ||||||
|  |  * limitations under the License. | ||||||
|  |  */ | ||||||
|  |  | ||||||
|  | package top.charles7c.cnadmin.common.config.properties; | ||||||
|  |  | ||||||
|  | import java.util.ArrayList; | ||||||
|  | import java.util.List; | ||||||
|  |  | ||||||
|  | import lombok.Data; | ||||||
|  |  | ||||||
|  | import org.springframework.boot.context.properties.ConfigurationProperties; | ||||||
|  | import org.springframework.stereotype.Component; | ||||||
|  |  | ||||||
|  | /** | ||||||
|  |  * 跨域配置属性 | ||||||
|  |  * | ||||||
|  |  * @author Charles7c | ||||||
|  |  * @since 2022/12/26 22:56 | ||||||
|  |  */ | ||||||
|  | @Data | ||||||
|  | @Component | ||||||
|  | @ConfigurationProperties(prefix = "cors") | ||||||
|  | public class CorsProperties { | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * 允许跨域的域名 | ||||||
|  |      */ | ||||||
|  |     private List<String> allowedOrigins = new ArrayList<>(); | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * 允许跨域的请求方式 | ||||||
|  |      */ | ||||||
|  |     private List<String> allowedMethods = new ArrayList<>(); | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * 允许跨域的请求头 | ||||||
|  |      */ | ||||||
|  |     private List<String> allowedHeaders = new ArrayList<>(); | ||||||
|  | } | ||||||
| @@ -105,3 +105,16 @@ captcha: | |||||||
| springdoc: | springdoc: | ||||||
|   swagger-ui: |   swagger-ui: | ||||||
|     enabled: true |     enabled: true | ||||||
|  |  | ||||||
|  | --- ### 跨域配置 | ||||||
|  | cors: | ||||||
|  |   # 配置允许跨域的域名 | ||||||
|  |   allowedOrigins: | ||||||
|  |     - http://127.0.0.1:5173 | ||||||
|  |     - http://localhost:5173 | ||||||
|  |     - http://cnadmin.charles7c.top | ||||||
|  |     - https://cnadmin.charles7c.top | ||||||
|  |   # 配置允许跨域的请求方式 | ||||||
|  |   allowedMethods: '*' | ||||||
|  |   # 配置允许跨域的请求头 | ||||||
|  |   allowedHeaders: '*' | ||||||
|   | |||||||
| @@ -93,3 +93,14 @@ captcha: | |||||||
| springdoc: | springdoc: | ||||||
|   swagger-ui: |   swagger-ui: | ||||||
|     enabled: false |     enabled: false | ||||||
|  |  | ||||||
|  | --- ### 跨域配置 | ||||||
|  | cors: | ||||||
|  |   # 配置允许跨域的域名 | ||||||
|  |   allowedOrigins: | ||||||
|  |     - http://cnadmin.charles7c.top | ||||||
|  |     - https://cnadmin.charles7c.top | ||||||
|  |   # 配置允许跨域的请求方式 | ||||||
|  |   allowedMethods: '*' | ||||||
|  |   # 配置允许跨域的请求头 | ||||||
|  |   allowedHeaders: '*' | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user