Spring Cloud Gateway + Jwt + Oauth2 实现网关的鉴权操作

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring Cloud Gateway + Jwt + Oauth2 实现网关的鉴权操作相关的知识,希望对你有一定的参考价值。

参考技术A

随着我们的微服务越来越多,如果每个微服务都要自己去实现一套鉴权操作,那么这么操作比较冗余,因此我们可以把鉴权操作统一放到网关去做,如果微服务自己有额外的鉴权处理,可以在自己的微服务中处理。

1、在网关层完成url层面的鉴权操作。

2、将解析后的jwt token当做请求头传递到下游服务中。
3、整合Spring Security Oauth2 Resource Server

1、搭建一个可用的认证服务器, 可以参考之前的文章.
2、知道Spring Security Oauth2 Resource Server资源服务器如何使用, 可以参考之前的文章.

自定义授权管理器,判断用户是否有权限访问
此处我们简单判断
1、放行所有的 OPTION 请求。
2、判断某个请求(url)用户是否有权限访问。
3、所有不存在的请求(url)直接无权限访问。

1、 客户端 gateway 在认证服务器拥有的权限为 user.userInfo

3、在网关层面,findAllUsers 需要的权限为 user.userInfo ,正好 gateway 这个客户端有这个权限,所以可以访问。

演示GIF

https://gitee.com/huan1993/spring-cloud-alibaba-parent/tree/master/gateway-oauth2

以上是关于Spring Cloud Gateway + Jwt + Oauth2 实现网关的鉴权操作的主要内容,如果未能解决你的问题,请参考以下文章

spring cloud gateway 如何工作

Spring Cloud Gateway集成

spring cloud gateway 的执行流程

spring cloud gateway 某些路由中跳过全局过滤器

spring cloud gateway 报错 Unable to find GatewayFilterFactory with name

Spring Cloud(18)——gateway