比较常见通用的 网关实现登录校验的实现需要考虑三个点:
- 网关如何在路由之前做登录校验?
- 网关如何将用户信息传递给微服务?
- 微服务之间如何传递用户信息?
网关过滤器
过滤器的执行流程
网关过滤器有两种:
GatewayFilter:路由过滤器,作用范围灵活,作用于任意指定的路由。
GlobalFilter:全局过滤器,作用范围是所有路由。
两种过滤器的过滤方法签名是完全一致的,返回的都是
Mono<void> filter (ServerWebExchange exchange, gatewayFilterChain chain)
名称 | 说明 | 示例 |
---|---|---|
AddRequestHeader | 给当前请求添加一个请求头 | AddrequestHeader=headerName,headerValue |
RemoveRequestHeader | 移除请求中的一个请求头 | RemoveRequestHeader=headerName |
AddResponseHeader | 给响应结果中添加一个响应头 | AddResponseHeader=headerName,headerValue |
RemoveResponseHeader | 从响应结果中移除有一个响应头 | RemoveResponseHeader=headerName |
RewritePath | 限制请求的流量 | RewritePath=/red/?(? |
StripPrefix | 去除请求路径中的N段前缀 | StripPrefix=1,则路径/a/b转发时只保留/b |
... |