關(guān)于springboot的跨域配置問題的解決方案
傳統(tǒng)跨域是springboot中CorsRegistry添加添加處理的CorsMapping,這種跨域處理可以處理controller的請求。
@Configuration
public class CorsConfig implements WebMvcConfigurer {
static final String[] ORIGINS = new String[] { "GET", "POST", "PUT", "DELETE" };
@Override
public void addCorsMappings(CorsRegistry registry) {
// 所有的當(dāng)前站點的請求地址,都支持跨域訪問。
registry.addMapping("/**")
// 所有的外部域都可跨域訪問
.allowedOrigins("*")
// 是否支持跨域用戶憑證
.allowCredentials(true)
// 當(dāng)前站點支持的跨域請求類型是什么
.allowedMethods(ORIGINS)
// 超時時長設(shè)置為1小時,時間單位是秒。
.maxAge(3600);
}
}但如果遇到spring boot集成spring security的時候,登錄時處理是在filter中的,傳統(tǒng)的跨域沒有辦法處理,這時候我們要采用一種新的實現(xiàn)方案:基于filter的跨域?qū)崿F(xiàn)。
基于filter實現(xiàn)可以處理filter中的跨域問題,這里原理很簡單,需要注意是要設(shè)置CorsFilter的優(yōu)先級:Ordered.HIGHEST_PRECEDENCE(加載到過濾器鏈最前面?。。。?/p>
@Configuration
public class CorsConfig {
private CorsConfiguration buildConfig() {
CorsConfiguration corsConfiguration = new CorsConfiguration();
corsConfiguration.addAllowedOrigin("*");
corsConfiguration.addAllowedHeader("*");
corsConfiguration.addAllowedMethod("*");
corsConfiguration.addExposedHeader("*");
return corsConfiguration;
}
@Bean
public FilterRegistrationBean<CorsFilter> corsFilter() {
UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
// 對接口配置跨域設(shè)置
source.registerCorsConfiguration("/**", buildConfig());
//有多個filter時此處設(shè)置改CorsFilter的優(yōu)先執(zhí)行順序
FilterRegistrationBean<CorsFilter> bean = new FilterRegistrationBean<>(new CorsFilter(source));
bean.setOrder(Ordered.HIGHEST_PRECEDENCE);
return bean;
}
}經(jīng)過測試,這種處理方法可以輕松應(yīng)對springboot的跨域問題。
到此這篇關(guān)于關(guān)于springboot的跨域配置問題的解決方案的文章就介紹到這了,更多相關(guān)springboot跨域配置內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
maven無法依賴spring-cloud-stater-zipkin的解決方案
這篇文章主要介紹了maven無法依賴spring-cloud-stater-zipkin如何解決,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-05-05
解決MyEclipse出現(xiàn)the user operation is waiting的問題
今天做項目的時候每次修改代碼保存后都會跳出一個框框,然后就有兩個進(jìn)度條,上面寫the user operation is wating...小編去網(wǎng)上查了查解決了這個問題,下面跟大家分享一下。2018-04-04
JAVA實現(xiàn)社會統(tǒng)一信用代碼校驗的方法
這篇文章主要介紹了JAVA實現(xiàn)社會統(tǒng)一信用代碼校驗的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07
MyBatis-Plus中靜態(tài)工具Db的多種用法及實例分析
本文將詳細(xì)講解MyBatis-Plus中靜態(tài)工具Db的各種用法,并結(jié)合具體案例進(jìn)行演示和說明,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2025-03-03

