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ù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Java如何利用LocalDate獲取某個月的第一天與最后一天日期
這篇文章主要給大家介紹了關于Java如何利用LocalDate獲取某個月的第一天與最后一天日期的相關資料,文中通過實例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2022-01-01Spring?Boot?使用?Hutool-jwt?實現?token?驗證功能
JWT?就是一種網絡身份認證和信息交換格式,這篇文章主要介紹了Spring Boot使用Hutool-jwt實現token驗證,需要的朋友可以參考下2023-07-07