1.查看spring security,发现会自动创建多个对象。此时需要通过排序来进行,将自己设置的配置文件提前初始化来满足
2.原因找到了。自己配置了多个config。所以造成创建了多个filter。这里一定要注意哦~~~
@EnableWebSecurity @Order(1) //排序来处理这样的问题。但是没有治本,需要查看为什么要初始化多个对象... public class SecurityConfig extends WebSecurityConfiguerAdapter { @Override protected void configure(HttpSecurity http) throws Exception {
//这里会新建一个对象。 http.headers().frameOptions().sameOrigin(); // 同源跨域,默认DENY http.csrf().disable() .authorizeRequests() .anyRequest().permitAll() .and().logout().permitAll(); http.cors().configurationSource(corsConfigurationSource()); } //配置跨域访问资源 private CorsConfigurationSource corsConfigurationSource() { CorsConfigurationSource source = new UrlBasedCorsConfigurationSource(); CorsConfiguration corsConfiguration = new CorsConfiguration(); corsConfiguration.addAllowedOrigin("*"); // 同源配置,*表示任何请求都视为同源,若需指定ip和端口可以改为如“localhost:8080”,多个以“,”分隔; corsConfiguration.addAllowedHeader("*");// header,允许哪些header corsConfiguration.addAllowedMethod("*"); // 允许的请求方法,PSOT、GET等 ((UrlBasedCorsConfigurationSource) source).registerCorsConfiguration("/**", corsConfiguration); // 配置允许跨域访问的url return source; } }