跨域的另一种设置方式

为了等保一些信息安全之类的问题:需要为系统添加访问白名单,限制哪些IP与端口号可以访问系统,其他的一概不能访问

这里涉及到前后端分离,跨域问题可以参考: https://blog.csdn.net/qq_16771097/article/details/117442727

需要在 CrosConfig 类型添加设置

配置在配置文件内

极少代码改动,相当简单

@Value("${origin.allowDevUrl}")
 private String allowDevUrl;


@Bean
public CorsFilter corsFilter() {
	UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
	org.springframework.web.cors.CorsConfiguration config = new org.springframework.web.cors.CorsConfiguration();
	config.setAllowCredentials(true);
	//config.addAllowedOrigin("*");
	config.setAllowedOrigins(getAllowedOrigins());
	config.addAllowedHeader("*");
	config.addAllowedMethod("*");
	source.registerCorsConfiguration("/**", config);
	return new CorsFilter(source);
}

//添加 dev test pro 允许访问url
private List<String> getAllowedOrigins(){
	List<String> allowedOrigins = new ArrayList<>();
	String[] devOrigins = allowDevUrl.split(",");
	for(String alloweUrl: devOrigins){
		if(StringUtils.isNotEmpty(alloweUrl)){
			allowedOrigins.add(alloweUrl.trim());
		}
	}
}

配置在数据库中

热生效,无需重新发版

getAllowedOrigins() 从数据库中查询即可

posted @ 2023-04-10 16:01  甜菜波波  阅读(25)  评论(0编辑  收藏  举报