SpringCloud全局過慮器GlobalFilter的用法小結
使用場景
同事遇到一個很棘手的問題,他當前開發(fā)的系統(tǒng)要與別的系統(tǒng)進行對接,當前系統(tǒng)對別的系統(tǒng)進行了放行處理,但對方系統(tǒng)帶了一個和當前系統(tǒng)一樣的請求頭key ,導致對方系統(tǒng)在訪問本系統(tǒng)的時候,總是驗證不通過,同事請我?guī)兔?,我首先想到的是使用全局過慮器將對方傳來的請求頭key對應的value置為空,后面試了其它方法都沒能解決,最后還是使用全局過慮器解決的。
事例代碼
package cn.gybank.gateway.filter;
import org.springframework.cloud.gateway.filter.GatewayFilterChain;
import org.springframework.cloud.gateway.filter.GlobalFilter;
import org.springframework.core.Ordered;
import org.springframework.http.server.reactive.ServerHttpRequest;
import org.springframework.stereotype.Component;
import org.springframework.web.server.ServerWebExchange;
import reactor.core.publisher.Mono;
@Component
public class MyGlobalFilter implements GlobalFilter, Ordered {
@Override
public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) {
ServerHttpRequest request = exchange.getRequest();
ServerHttpRequest mutableReq = request.mutate().header("Authorization","").build();
ServerWebExchange mutableExchange = exchange.mutate().request(mutableReq).build();
return chain.filter(mutableExchange);
}
@Override
public int getOrder() {
return -200;
}
}總結
全局過慮器使用非常廣泛,比如驗證是否登錄,全局性的處理,黑名單或白名單的校驗等,相信你以后一定能用得上。
到此這篇關于SpringCloud全局過慮器GlobalFilter的使用的文章就介紹到這了,更多相關SpringCloud全局過慮器內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Springboot+Shiro+Jwt實現權限控制的項目實踐
如今的互聯網已經成為前后端分離的時代,所以本文在使用SpringBoot整合Shiro框架的時候會聯合JWT一起搭配使用,具有一定的參考價值,感興趣的可以了解一下2023-09-09
@WebFilter在SpringBoot無效的原因分析和解決方案
使用Ruoyi的demo部署成功后,發(fā)現js、css等靜態(tài)文件都進入了過濾器,但是發(fā)現靜態(tài)文件沒有使用瀏覽器緩存,新建BrowserCacheFilter.java并增加@WebFilter處理,應用自動重啟后發(fā)現@WebFilter無效,所以本文給大家介紹了@WebFilter在SpringBoot無效的原因分析和解決方案2024-03-03
Spring Cloud OAuth2 實現用戶認證及單點登錄的示例代碼
這篇文章主要介紹了Spring Cloud OAuth2 實現用戶認證及單點登錄的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-10-10
Java文件操作工具類fileUtil實例【文件增刪改,復制等】
這篇文章主要介紹了Java文件操作工具類fileUtil,結合實例形式分析了java針對文件進行讀取、增加、刪除、修改、復制等操作的相關實現技巧,需要的朋友可以參考下2017-10-10

