一、基礎知識
gateWay---API網(wǎng)關,也可以稱為業(yè)務網(wǎng)關,主要服務于微服務的;
(1)? 三大組件
- 路由(Route)
????????構(gòu)建網(wǎng)關的基本模塊,由id(唯一標示)、目標URI、一組斷言、一組過濾器組成,如果斷言為true,則匹配該路由
- ? 斷言(Predicate)
? ? ? ? ?可以使用它匹配來自HTTP請求的任何內(nèi)容,例如headers或參數(shù)
- 多濾器(Filter)
????????Gate中的Filter分為兩種類型,Gateway Filter和Global Filter;過濾器Filter將會對請求和響應進行修改處理
(2)運行流程
?文章來源地址http://www.zghlxwxcb.cn/news/detail-478479.html
(3) 搭建網(wǎng)關服務
- 引入網(wǎng)關依賴和nacos服務發(fā)現(xiàn)依賴
<!--網(wǎng)關依賴-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-gateway</artifactId>
</dependency>
<!--nacos 服務發(fā)現(xiàn)依賴-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
<version>2.2.5.RELEASE</version>
</dependency>
- 編寫路由配置和nacos地址
cloud:
gateway:
globalcors: #全局的跨域處理
add-to-simple-url-handler-mapping: true #解決optoins請求被攔截的問題
corsConfigurations:
'[/**]':
#允許在請求中攜帶的頭信息
allowedHeaders: "*"
#允許哪些網(wǎng)站跨域
allowedOrigins: "*"
allowed-methods: #允許跨域請求的方式
- GET
- POST
- DELETE
- PUT
- OPTION
routes: #網(wǎng)關路由配置
#探花系統(tǒng)
- id: tanhua-app-server
uri: lb://tanhua-app-server #路由的目標地址,lb是負載均衡:服務名稱
predicates: #路由斷言,判斷請求是否符合路由的規(guī)則
- Path=/app/**
filters: #過濾器
- StripPrefix= 1 #去掉url部分前綴
#后臺系統(tǒng)
- id: tanhua-admin
uri: lb://tanhua-admin
predicates:
- Path=/admin/**
filters:
- StripPrefix= 1
三、實現(xiàn)步驟
(1)自定義過濾器
? ? ? ? 需要實現(xiàn)兩個接口(GlobaFilter、Ordered);重寫兩個方法filter( )---負責鑒權的業(yè)務邏輯,getOrdered()---設置過濾器執(zhí)行的順序
?
(2)在過濾器的filter方法中完成鑒權的業(yè)務邏輯
? ? ? ? 1.對與特殊的接口,不進行校驗,直接放行
? ? ? ? 2.獲取請求信息中的Token
? ? ? ? 3.對Token進行校驗,無效的進行攔截返回提示信息到前臺,有效的放行
文章來源:http://www.zghlxwxcb.cn/news/detail-478479.html
?
到了這里,關于GateWay網(wǎng)關自定義過濾器實現(xiàn)token校驗完成統(tǒng)一鑒權的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!