跨域的另一种设置方式
为了等保一些信息安全之类的问题:需要为系统添加访问白名单,限制哪些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() 从数据库中查询即可