Spring Cloud Gateway 整合 OAuth2.0 实现分布式统一认证授权④

love374
发布于 2022-7-11 11:45
浏览
0收藏

 

7、OAuth2.0相关配置
经过上述6个步骤,相关组件已经准备就绪,现在直接配置到OAuth2.0中。

新建SecurityConfig这个配置类,标注注解 @EnableWebFluxSecurity,注意不是 @EnableWebSecurity,因为Spring Cloud Gateway是基于Flux实现的。详细代码如下:

Spring Cloud Gateway 整合 OAuth2.0 实现分布式统一认证授权④-鸿蒙开发者社区

需要配置的内容如下:

  • 认证过滤器,其中利用了认证管理器对令牌的校验
  • 鉴权管理器、令牌失效异常处理、无权限访问异常处理
  • 白名单配置
  • 跨域过滤器的配置


8、全局过滤器定制
试想一下:网关层面认证鉴权成功后,下游微服务如何获取到当前用户的详细信息?

陈某这里是将令牌携带的用户信息解析出来,封装成JSON数据,然后通过Base64加密,放入到请求头中,转发给下游微服务。

这样一来,下游微服务只需要解密请求头中的JSON数据,即可获取用户的详细信息。

因此需要在网关中定义一个全局过滤器,用来拦截请求,解析令牌,关键代码如下:

Spring Cloud Gateway 整合 OAuth2.0 实现分布式统一认证授权④-鸿蒙开发者社区

上述代码逻辑如下:

  • 检查是否是白名单,白名单直接放行
  • 检验令牌是否存在
  • 解析令牌中的用户信息
  • 封装用户信息到JSON数据中
  • 加密JSON数据
  • 将加密后的JSON数据放入到请求头中
    好了,经过上述8个步骤,完整的网关已经搭建成功了。

“案例源码已经上传GitHub,关注公众号:码猿技术专栏,回复关键词:9529 获取!”

 

文章转自公众号:码猿技术专栏

已于2022-7-11 11:45:24修改
收藏
回复
举报
回复
    相关推荐