怎么利用Scheduled定时器,让跨域定时加载最新的白名单数据呢?或者给个其他方案,谢谢各位
@Configuration
@EnableScheduling//启动定时
public class CorsConfig {
@Autowired
CorsRepository corsRepository;
Integer corsI = 1;
private CorsConfiguration buildConfig() {
CorsConfiguration corsConfiguration = new CorsConfiguration();
List<Cors> corsa = corsRepository.findAllByCorsType(true);
for (int i = 0; i < corsa.size(); i++) {
corsConfiguration.addAllowedOrigin(corsa.get(i).getIpAddress());// 1 设置访问源地址
}
// corsConfiguration.addAllowedOrigin("http://192.168.1.5");// 1 设置访问源地址
// corsConfiguration.addAllowedOrigin("http://192.168.31.109");// 1 设置访问源地址
// corsConfiguration.addAllowedOrigin("http://192.168.31.110");// 1 设置访问源地址
// corsConfiguration.addAllowedOrigin("http://192.168.31.201");// 1 设置访问源地址
// corsConfiguration.addAllowedOrigin("http://localhost");// 1 设置访问源地址
corsConfiguration.addAllowedHeader("*");// 2 设置访问源请求头
corsConfiguration.addAllowedMethod("*");// 3 设置访问源请求方法
corsConfiguration.setAllowCredentials(true);
return corsConfiguration;
}
@Bean
// @Scheduled(initialDelay = 1000, fixedDelay = 6000 * 5)
public CorsFilter corsFilter() {
// System.err.println("跨域执行第" + corsI + "次");
corsI++;
UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
source.registerCorsConfiguration("/**", this.buildConfig());// 4 对接口配置跨域设置
return new CorsFilter(source);
}
}