spring boot跨域设置

package com.yingu.project.rest.config;

import com.yingu.project.util.config.SysConfig;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.cors.CorsConfiguration;
import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
import org.springframework.web.filter.CorsFilter;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

/**
 * 跨域设置
 */
@Configuration
public class CrosConfig {
    @Autowired
    SysConfig sysConfig;
    @Bean
    public CorsFilter corsFilter() {
        final UrlBasedCorsConfigurationSource urlBasedCorsConfigurationSource = new UrlBasedCorsConfigurationSource();
        final CorsConfiguration corsConfiguration = new CorsConfiguration();
        /*是否允许请求带有验证信息*/
        corsConfiguration.setAllowCredentials(true);
        /*允许访问的客户端域名*/
        List<String> allowedOrigins=new ArrayList<>();
        //多个ip
//        allowedOrigins.add("http://localhost:8081");
//        allowedOrigins.add("http://localhost:8082");
//        corsConfiguration.setAllowedOrigins(allowedOrigins);
        //单个ip
        //corsConfiguration.addAllowedOrigin("*");//*表示不限制Ip
//读取配置方式 格式http://xxx,http://xxx
        List<String> list= Arrays.asList( sysConfig.getCros_url().split(","));
        for(String item :list){
            if(!item.isEmpty()){
                allowedOrigins.add(item);
            }
        }
        corsConfiguration.setAllowedOrigins(allowedOrigins);
        /*允许服务端访问的客户端请求头*/
        corsConfiguration.addAllowedHeader("*");
        /*允许访问的方法名,GET POST等*/
        corsConfiguration.addAllowedMethod("*");
        urlBasedCorsConfigurationSource.registerCorsConfiguration("/**", corsConfiguration);
        return new CorsFilter(urlBasedCorsConfigurationSource);
    }
}
发布了42 篇原创文章 · 获赞 25 · 访问量 7万+

猜你喜欢

转载自blog.csdn.net/qq812858143/article/details/84334869