一、基础知识
gateWay---API网关,也可以称为业务网关,主要服务于微服务的;
(1) 三大组件
- 路由(Route)
构建网关的基本模块,由id(唯一标示)、目标URI、一组断言、一组过滤器组成,如果断言为true,则匹配该路由
- 断言(Predicate)
可以使用它匹配来自HTTP请求的任何内容,例如headers或参数
- 多滤器(Filter)
Gate中的Filter分为两种类型,Gateway Filter和Global Filter;过滤器Filter将会对请求和响应进行修改处理
(2)运行流程
文章来源地址https://www.toymoban.com/news/detail-478479.html
(3) 搭建网关服务
- 引入网关依赖和nacos服务发现依赖
<!--网关依赖-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-gateway</artifactId>
</dependency>
<!--nacos 服务发现依赖-->
<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: "*"
#允许哪些网站跨域
allowedOrigins: "*"
allowed-methods: #允许跨域请求的方式
- GET
- POST
- DELETE
- PUT
- OPTION
routes: #网关路由配置
#探花系统
- id: tanhua-app-server
uri: lb://tanhua-app-server #路由的目标地址,lb是负载均衡:服务名称
predicates: #路由断言,判断请求是否符合路由的规则
- Path=/app/**
filters: #过滤器
- StripPrefix= 1 #去掉url部分前缀
#后台系统
- id: tanhua-admin
uri: lb://tanhua-admin
predicates:
- Path=/admin/**
filters:
- StripPrefix= 1
三、实现步骤
(1)自定义过滤器
需要实现两个接口(GlobaFilter、Ordered);重写两个方法filter( )---负责鉴权的业务逻辑,getOrdered()---设置过滤器执行的顺序
(2)在过滤器的filter方法中完成鉴权的业务逻辑
1.对与特殊的接口,不进行校验,直接放行
2.获取请求信息中的Token
3.对Token进行校验,无效的进行拦截返回提示信息到前台,有效的放行
文章来源:https://www.toymoban.com/news/detail-478479.html
到了这里,关于GateWay网关自定义过滤器实现token校验完成统一鉴权的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!