首页 > 其他分享 >正确配置 Spring Boot Security 跨域请求(CORS)

正确配置 Spring Boot Security 跨域请求(CORS)

时间:2023-11-14 17:04:00浏览次数:41  
标签:跨域 Spring Boot source Bean CORS Security configuration

如果 Spring Boot 项目引入 Spring Security 组件,单独声明 CorsConfigurationSource Bean 并不起作用,这是由于 CORS 预检请求不含 Session ID 而请求首先被 Spring Security 处理并拒绝导致的。

因此,必须明确地配置 Spring Security 跨域参数以便正常处理跨域请求,下面是一个配置示例:


@EnableWebSecurity
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http
            // cors 默认读取名为 corsConfigurationSource Bean 的配置
            .cors().and()
            ...
            //其它配置
    }

    @Bean
    CorsConfigurationSource corsConfigurationSource() {
        CorsConfiguration configuration = new CorsConfiguration();
        configuration.setAllowedOrigins(Arrays.asList("https://example.com"));
        configuration.setAllowedMethods(Arrays.asList("GET","POST"));
        UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
        source.registerCorsConfiguration("/**", configuration);
        return source;
    }
}


标签:跨域,Spring,Boot,source,Bean,CORS,Security,configuration
From: https://blog.51cto.com/u_15668812/8371412

相关文章

  • springboot dto,entity中过滤字符串传入内容的空格
    @Excel(name="商品编号")privateStringproductCode;publicStringgetProductCode(){//过滤空格;returnproductCode.trim();}......
  • springcloud教程 -- 快速搭建入门级demo
    废话不多讲,跟紧我,开启你的SpringCloud初体验 首先回顾微服务的基本组成: [图片here] 生产者:提供服务消费者:消费服务服务注册/发现中心:服务注册,发现,监控所以,首先明白springcloud微服务的架构基础:生产者(client),消费者(client),服务注册/发现中心(server) ****************......
  • springboot+springsecurity+layui+cherryMd博客系统
    演示地址:http://175.24.198.63:9090/front/indexPS:演示环境的服务器配置很低,带宽很小,若打开速度较慢,稍微等等哦~现在动不动就是前后端分离,其实访问量不大博客这种项目,没有必要为了分离而分离。SpringBoot+LayUI:快速开发:LayUI是一个简单的UI框架,它提供了易于使用的组......
  • springboot 3 知识点总结
    一、springboot相关1.类中添加@RestController、方法中添加@GetMapping注解可实现web的路由和数据返回;这两个注解不是springboot的是注解,是springMVC的注解2.在controller的方法中的参数中添加@RequestPara(value="name",defaultValue="word")可以实现浏览器get参数的接收......
  • SpringBoot系列之集成Redission入门与实践教程
    Redisson是一款基于java开发的开源项目,提供了很多企业级实践,比如分布式锁、消息队列、异步执行等功能。本文基于Springboot2版本集成redisson-spring-boot-starter实现redisson的基本应用软件环境:JDK1.8SpringBoot2.2.1Maven3.2+Mysql8.0.26redisson-spring-boot-starter3.15.......
  • SpringBoot定义拦截器+自定义注解+Redis实现接口防刷(限流)
    实现思路在拦截器Interceptor中拦截请求通过地址+请求uri作为调用者访问接口的区分在Redis中进行计数达到限流目的简单实现定义参数访问周期最大访问次数禁用时长#接口防刷配置,时间单位都是秒.如果second秒内访问次数达到times,就禁用lockTime秒access:lim......
  • SpringBoot2和SpringBoot3有什么区别
    SpringBoot2和SpringBoot3有什么区别1.最低环境的区别Java版本:SpringBoot2的最低版本要求为Java8,支持Java9;而SpringBoot3决定使用Java17作为最低版本,并支持Java19。SpringFramework版本:SpringBoot2基于SpringFramework5开发;而SpringBoot3构建基于SpringFramework6之上。......
  • Spring Event 业务解耦神器,大大提高可扩展性,好用到爆!
    来源:blog.csdn.net/weixin_42653522/article/details/1171519131、前言ApplicationContext中的事件处理是通过ApplicationEvent类和ApplicationListener接口提供的。如果将实现了ApplicationListener接口的bean部署到容器中,则每次将ApplicationEvent发布到Applicatio......
  • Spring5学习随笔-Spring5的第一个程序(环境搭建、日志框架整合)
    学习视频:【孙哥说Spring5:从设计模式到基本应用到应用级底层分析,一次深入浅出的Spring全探索。学不会Spring?只因你未遇见孙哥】第二章、第一个Spring程序1.软件版本1.JDK1.8+2.Maven3.5+3.IDEA2018+4.SpringFramework5.1.4官网:www.spring.io2.环境搭建Spring的jar包......
  • springboot集成nacos
    一、加pom文件<!--Nacos--><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId></dependency><d......