關于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) {
// 所有的當前站點的請求地址,都支持跨域訪問。
registry.addMapping("/**")
// 所有的外部域都可跨域訪問
.allowedOrigins("*")
// 是否支持跨域用戶憑證
.allowCredentials(true)
// 當前站點支持的跨域請求類型是什么
.allowedMethods(ORIGINS)
// 超時時長設置為1小時,時間單位是秒。
.maxAge(3600);
}
}但如果遇到spring boot集成spring security的時候,登錄時處理是在filter中的,傳統(tǒng)的跨域沒有辦法處理,這時候我們要采用一種新的實現(xiàn)方案:基于filter的跨域?qū)崿F(xiàn)。
基于filter實現(xiàn)可以處理filter中的跨域問題,這里原理很簡單,需要注意是要設置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();
// 對接口配置跨域設置
source.registerCorsConfiguration("/**", buildConfig());
//有多個filter時此處設置改CorsFilter的優(yōu)先執(zhí)行順序
FilterRegistrationBean<CorsFilter> bean = new FilterRegistrationBean<>(new CorsFilter(source));
bean.setOrder(Ordered.HIGHEST_PRECEDENCE);
return bean;
}
}經(jīng)過測試,這種處理方法可以輕松應對springboot的跨域問題。
到此這篇關于關于springboot的跨域配置問題的解決方案的文章就介紹到這了,更多相關springboot跨域配置內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
SpringBoot整合MongoDB完成增刪改查分頁查詢方式
本文介紹了如何在SpringBoot中整合MongoDB,包括依賴導入、連接配置、實體類創(chuàng)建、增刪改查、分頁查詢、時間范圍查詢以及基本操作的調(diào)試2025-11-11
Java根據(jù)坐標經(jīng)緯度計算兩點距離5種方法及校驗經(jīng)緯度是否在圓/多邊形區(qū)域內(nèi)的算法推薦
在項目開發(fā)過程中需要根據(jù)兩地經(jīng)緯度坐標計算兩地間距離,下面這篇文章主要給大家介紹了關于Java根據(jù)坐標經(jīng)緯度計算兩點距離5種方法以及校驗經(jīng)緯度是否在圓/多邊形區(qū)域內(nèi)的算法推薦,需要的朋友可以參考下2023-12-12
SQL注入攻擊及其在SpringBoot中使用MyBatisPlus的防范策略的方法
本文介紹了如何使用SpringBoot整合JavaDeeplearning4j構建一個文本摘要生成系統(tǒng),該系統(tǒng)能夠自動從長篇文本中提取關鍵信息,生成簡潔的摘要,幫助用戶快速了解文本的主要內(nèi)容,系統(tǒng)使用LSTM神經(jīng)網(wǎng)絡模型進行訓練,并通過SpringBoot創(chuàng)建RESTful?API進行調(diào)用2024-11-11
SpringCloud手寫Ribbon實現(xiàn)負載均衡
這篇文章主要介紹了SpringCloud手寫Ribbon實現(xiàn)負載均衡的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2021-01-01
SpringBoot基于MyBatis-Plus實現(xiàn)Lambda Query查詢的示例代碼
MyBatis-Plus 是 MyBatis 的增強工具,簡化了數(shù)據(jù)庫操作,并提高了開發(fā)效率,它提供了多種查詢方式,包括常規(guī)的 SQL 查詢、Lambda Query 查詢、分頁查詢、條件查詢等,在本篇博客中,我們將詳細講解如何使用 MyBatis-Plus 的各種查詢方式,需要的朋友可以參考下2025-01-01
Spring MVC 更靈活的控制 json 返回問題(自定義過濾字段)
本篇文章主要介紹了Spring MVC 更靈活的控制 json 返回問題(自定義過濾字段),具有一定的參考價值,感興趣的小伙伴們可以參考一下。2017-02-02
Mybatis如何傳入多個參數(shù)的實現(xiàn)代碼
這篇文章主要介紹了Mybatis如何傳入多個參數(shù)的實現(xiàn)代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-12-12

