SpringBoot 跨域Filter

本文详细介绍了如何在SpringBoot项目中使用@Configuration注解配置CORS跨域请求,通过创建并注册自定义的CorsFilter实现对特定来源、方法及头部信息的支持,确保了前后端分离应用的顺利交互。

 

在 @Configuration下的类加一个Bean配置

    private static final int TOKEN_FILTER_ORDER = Integer.MAX_VALUE;
/**
     * corsFilter
     *
     * @return
     */
    @Bean
    public FilterRegistrationBean<CorsFilter> corsFilter() {
        FilterRegistrationBean<CorsFilter> registrationBean = new FilterRegistrationBean<CorsFilter>();
        UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
        CorsConfiguration configuration = new CorsConfiguration();
        configuration.setAllowedOrigins(Arrays.asList("http://localhost:8080, http://127.0.0.1:8080".split("\\s*,\\s*")));
        configuration.setAllowedMethods(Arrays.asList("GET, POST, OPTIONS, PUT, PATCH, DELETE".split("\\s*,\\s*")));
        configuration.setAllowedHeaders(Arrays.asList("Origin, No-Cache, X-Requested-With, If-Modified-Since, Pragma, Last-Modified, Cache-Control, Expires, Content-Type, X-E4M-With, Language, Authorization, Accept".split("\\s*,\\s*")));
        /**
         * 是否允许认证信息
         */
        configuration.setAllowCredentials(true);
        configuration.setMaxAge(3600L);
        source.registerCorsConfiguration("/**", configuration);
        CorsFilter corsFilter = new CorsFilter(source);
        registrationBean.setFilter(corsFilter);
        registrationBean.setName("CorsFilter");
        registrationBean.setOrder(TOKEN_FILTER_ORDER - 1);
        registrationBean.addUrlPatterns("/*");
        return registrationBean;
    }

 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值