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;
}
}
