SpringSecurity跨域

 

在用SpringSecurity有个问题头疼的半天,也可能是对SpringSecurity的不熟悉导致,在此贴一下怎么去解决的。

项目架构是微服务架构,那自然是前后端分离撒,在前端进行Ajax请求时出现了跨域问题

感觉不是大问题喃,就算我不会解决,网上解决跨域的问题不是一堆么。

我就注入了一个配置类,如下:

@Configuration
public class CorsConfig {
  private CorsConfiguration buildConfig() {
    CorsConfiguration corsConfiguration = new CorsConfiguration();
    corsConfiguration.addAllowedOrigin("*"); // 1允许任何域名使用
    corsConfiguration.addAllowedHeader("*"); // 2允许任何头
    corsConfiguration.addAllowedMethod("*"); // 3允许任何方法(post、get等)
    corsConfiguration.setAllowCredentials(true);
    return corsConfiguration;
  } 

  @Bean
  public CorsFilter corsFilter() {
    UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
    source.registerCorsConfiguration("/**", buildConfig()); // 4
    return new CorsFilter(source);
  }
}

时间过去一小时了,又过去一小时了,我用Swagger是一点问题都没有,可还是请求不了,我觉得是我的思路错了,于是我矛头转向SpringSecurity

我把拦截请求关了,可以访问了,打开又不可以访问了,真是头皮发麻。

下面这句就是在SpringSecurity配置文件里面拦截请求的了

 //拦截其他所有请求
.anyRequest().authenticated()

所以事实证明,SpringSecurity有问题。

于是我查询资料知道

加一句代码就ok了

.and()
.cors()
//拦截其他所有请求
.anyRequest().authenticated()
.and()
.cors()
.and().csrf().disable();

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章