zoukankan      html  css  js  c++  java
  • spring-boot-plus CORS跨域处理

    CORS跨域处理

    CORS:Cross-Origin Resource Sharing

    • CORS是一种允许当前域(domain)的资源(比如html/js/web service)被其他域(domain)的脚本请求访问的机制,通常由于同域安全策略(the same-origin security policy)浏览器会禁止这种跨域请求。

    处理方法

    • 后台设置允许的请求源/请求头等信息

    后台配置

    CorsFilter Bean配置

    使用 Spring 提供的 CorsFilter 过滤器实现跨域配置

    • io.geekidea.springbootplus.core.config.SpringBootPlusCorsConfig
    /**
     * CORS跨域设置
     *
     * @return
     */
    @Bean
    public FilterRegistrationBean corsFilter(SpringBootPlusCorsProperties corsProperties) {
        log.debug("corsProperties:{}", corsProperties);
        UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
        CorsConfiguration corsConfiguration = new CorsConfiguration();
        // 跨域配置
        corsConfiguration.setAllowedOrigins(corsProperties.getAllowedOrigins());
        corsConfiguration.setAllowedHeaders(corsProperties.getAllowedHeaders());
        corsConfiguration.setAllowedMethods(corsProperties.getAllowedMethods());
        corsConfiguration.setAllowCredentials(corsProperties.isAllowCredentials());
        corsConfiguration.setExposedHeaders(corsProperties.getExposedHeaders());
        corsConfiguration.setMaxAge(corsConfiguration.getMaxAge());
    
        source.registerCorsConfiguration(corsProperties.getPath(), corsConfiguration);
        FilterRegistrationBean bean = new FilterRegistrationBean(new CorsFilter(source));
        bean.setOrder(Ordered.HIGHEST_PRECEDENCE);
        bean.setEnabled(corsProperties.isEnable());
        return bean;
    }
    

    配置文件

    配置文件类:io.geekidea.springbootplus.core.properties.SpringBootPlusCorsProperties

    • application.yml
    spring-boot-plus:
      ############################ CORS start ############################
      # CORS跨域配置,默认允许跨域
      cors:
        # 是否启用跨域,默认启用
        enable: true
        # CORS过滤的路径,默认:/**
        path: /**
        # 允许访问的源
        allowed-origins: '*'
        # 允许访问的请求头
        allowed-headers: x-requested-with,content-type,token
        # 是否允许发送cookie
        allow-credentials: true
        # 允许访问的请求方式
        allowed-methods: OPTION,GET,POST
        # 允许响应的头
        exposed-headers: token
        # 该响应的有效时间默认为30分钟,在有效时间内,浏览器无须为同一请求再次发起预检请求
        max-age: 1800
      ############################ CORS end ##############################
    

    参考

    GITHUB:https://github.com/geekidea/spring-boot-plus

  • 相关阅读:
    (转)GNU风格ARM汇编语法指南(非常详细)5
    (转)ARM GNU常用汇编语言介绍
    RH850 FCL的使用
    RL78 FDL和FSL的使用
    RH850 中断相关
    关于const类型指针变量的使用
    Linux内核中双向链表的经典实现
    RL78 定义常量变量在指定的地址方法
    RL78 RAM GUARD Funtion
    AUTOSAR-Specification of Watchdog Manager 阅读
  • 原文地址:https://www.cnblogs.com/springbootplus/p/11675740.html
Copyright © 2011-2022 走看看