springcloud整合gateway實現(xiàn)網(wǎng)關(guān)全局過濾器功能
springcloud整合gateway實現(xiàn)網(wǎng)關(guān)全局過濾器功能,在? ? springcloud整合gateway實現(xiàn)網(wǎng)關(guān) ??基礎(chǔ)功能上進(jìn)行修改。
1.代碼實現(xiàn):
添加自定義全局過濾器
/**
?* 自定義一個全局過濾器
?* 實現(xiàn) globalfilter , ordered接口
?*/
@Component
public class LoginFilter implements GlobalFilter, Ordered {
? ? /**
? ? ?* 執(zhí)行過濾器中的業(yè)務(wù)邏輯
? ? ?* ? ? 對請求參數(shù)中的access-token進(jìn)行判斷
? ? ?* ? ? ?如果存在此參數(shù):代表已經(jīng)認(rèn)證成功
? ? ?* ? ? ?如果不存在此參數(shù) : 認(rèn)證失敗.
? ? ?* ?ServerWebExchange : 相當(dāng)于請求和響應(yīng)的上下文(zuul中的RequestContext)
? ? ?*/
? ? @Override
? ? public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) {
? ? ? ? System.out.println("執(zhí)行了自定義的全局過濾器");
? ? ? ? //1.獲取請求參數(shù)access-token
? ? ? ? String token = exchange.getRequest().getQueryParams().getFirst("access-token");
? ? ? ? //2.判斷是否存在
? ? ? ? if(token == null) {
? ? ? ? ? ? //3.如果不存在 : 認(rèn)證失敗
? ? ? ? ? ? System.out.println("沒有登錄");
? ? ? ? ? ? exchange.getResponse().setStatusCode(HttpStatus.UNAUTHORIZED);
? ? ? ? ? ? return exchange.getResponse().setComplete(); //請求結(jié)束
? ? ? ? }
? ? ? ? //4.如果存在,繼續(xù)執(zhí)行
? ? ? ? return chain.filter(exchange); //繼續(xù)向下執(zhí)行
? ? }
? ? /**
? ? ?* 指定過濾器的執(zhí)行順序 , 返回值越小,執(zhí)行優(yōu)先級越高
? ? ?*/
? ? @Override
? ? public int getOrder() {
? ? ? ? return 0;
? ? }
}2.實現(xiàn)效果:
啟動nacos,再啟動項目gateway-service, gateway-client。打開瀏覽器訪問
? ?http://localhost:8001/client/index??

訪問? ?http://localhost:8001/client/index?access-token=token??
實現(xiàn)了添加token后就可以訪問。

到此這篇關(guān)于springcloud整合gateway實現(xiàn)網(wǎng)關(guān)全局過濾器功能的文章就介紹到這了,更多相關(guān)springcloud gateway網(wǎng)關(guān)全局過濾內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java并發(fā)編程Lock?Condition和ReentrantLock基本原理
這篇文章主要介紹了Java并發(fā)編程Lock?Condition和ReentrantLock基本原理,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-09-09
解決redisTemplate中l(wèi)eftPushAll隱性bug的問題
這篇文章主要介紹了解決redisTemplate中l(wèi)eftPushAll隱性bug的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-02-02
流讀取導(dǎo)致StringBuilder.toString()亂碼的問題及解決
這篇文章主要介紹了流讀取導(dǎo)致StringBuilder.toString()亂碼的問題及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-11-11

