LiiuZeYu_branch
lzy 10 months ago
parent 3e1c52b36b
commit 14cecf1f57

@ -0,0 +1,61 @@
package com.yami.shop.security.common.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.cors.CorsConfiguration;
import org.springframework.web.cors.CorsConfigurationSource;
import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
/**
* CorsConfigSpring@Configuration
* CORS便
* 使访
*
* @author yami
*/
@Configuration
public class CorsConfig {
/**
* corsConfigurationSourceSpringBean@Bean
* CorsConfigurationSourceSpring WebCORS
* origins访HTTP
*
*
* - *访
* 便访
* - addAllowedOrigin访
* configuration.addAllowedOrigin("http://localhost:8080");
* configuration.addAllowedOrigin("http://192.168.1.6:8080");
*
* @return CorsConfigurationSourceSpring Web使
*/
@Bean
public CorsConfigurationSource corsConfigurationSource() {
// 创建一个CorsConfiguration对象用于配置跨域相关的各种规则
CorsConfiguration configuration = new CorsConfiguration();
// 使用addAllowedOriginPattern方法添加允许跨域访问的来源模式这里使用通配符*)表示允许所有来源访问,
// 但需注意在生产环境应按实际情况修改为具体域名,可参考上面的注释说明。
configuration.addAllowedOriginPattern("*");
// 修改为添加add而不是设置set允许的HTTP方法使用通配符*表示允许所有的HTTP方法如GET、POST、PUT等
// 这样前端可以使用各种类型的HTTP请求来访问后端接口。
configuration.addAllowedMethod("*");
// 这里配置允许的请求头,同样使用通配符(*)表示允许所有的请求头信息,
// 特别重要的是起码需要允许 Access-Control-Allow-Origin这个请求头它与跨域访问的合法性验证密切相关。
configuration.addAllowedHeader("*");
// 设置是否允许发送Cookie等凭证信息设置为true表示允许
// 若前后端交互需要携带用户认证等相关凭证如Cookie中的登录信息则需要开启此项。
configuration.setAllowCredentials(true);
// 设置预检请求OPTIONS请求的缓存时间单位为秒这里设置为一天3600 * 24秒
// 在缓存有效期内,对于相同来源、方法和请求头的请求,浏览器不会再次发送预检请求,提高性能。
configuration.setMaxAge(3600 * 24L);
// 创建一个基于URL的CorsConfigurationSource对象它可以根据不同的URL路径应用不同的CorsConfiguration配置。
UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
// 将上面配置好的CorsConfiguration应用到所有路径/**表示匹配所有的请求路径),
// 意味着所有的接口请求都会按照这个配置来处理跨域相关的规则。
source.registerCorsConfiguration("/**", configuration);
return source;
}
}
Loading…
Cancel
Save