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

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

到此這篇關(guān)于springcloud整合gateway實(shí)現(xiàn)網(wǎng)關(guān)全局過(guò)濾器功能的文章就介紹到這了,更多相關(guān)springcloud gateway網(wǎng)關(guān)全局過(guò)濾內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
java實(shí)現(xiàn)二叉樹的創(chuàng)建及5種遍歷方法(總結(jié))
下面小編就為大家?guī)?lái)一篇java實(shí)現(xiàn)二叉樹的創(chuàng)建及5種遍歷方法(總結(jié))。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-04-04
詳解SpringBoot是如何整合SpringDataRedis的?
今天給大家?guī)?lái)的是關(guān)于Java的相關(guān)知識(shí),文章圍繞著SpringBoot是如何整合SpringDataRedis展開(kāi),文中有非常詳細(xì)的介紹及代碼示例,需要的朋友可以參考下2021-06-06
Mybatis基于xml配置實(shí)現(xiàn)單表的增刪改查功能
這篇文章主要介紹了Mybatis基于xml配置實(shí)現(xiàn)單表的增刪改查,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-04-04
springboot的控制反轉(zhuǎn)和自動(dòng)裝配示例代碼
這篇文章主要介紹了springboot的控制反轉(zhuǎn)和自動(dòng)裝配的相關(guān)知識(shí),本文通過(guò)示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-06-06
對(duì)ArrayList和LinkedList底層實(shí)現(xiàn)原理詳解
今天小編就為大家分享一篇對(duì)ArrayList和LinkedList底層實(shí)現(xiàn)原理詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-10-10
詳解如何讓Spring MVC顯示自定義的404 Not Found頁(yè)面
這篇文章主要介紹了詳解如何讓Spring MVC顯示自定義的404 Not Found頁(yè)面,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-10-10

