回复
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实现的。详细代码如下:
需要配置的内容如下:
- 认证过滤器,其中利用了认证管理器对令牌的校验
- 鉴权管理器、令牌失效异常处理、无权限访问异常处理
- 白名单配置
- 跨域过滤器的配置
8、全局过滤器定制
试想一下:网关层面认证鉴权成功后,下游微服务如何获取到当前用户的详细信息?
陈某这里是将令牌携带的用户信息解析出来,封装成JSON数据,然后通过Base64加密,放入到请求头中,转发给下游微服务。
这样一来,下游微服务只需要解密请求头中的JSON数据,即可获取用户的详细信息。
因此需要在网关中定义一个全局过滤器,用来拦截请求,解析令牌,关键代码如下:
上述代码逻辑如下:
- 检查是否是白名单,白名单直接放行
- 检验令牌是否存在
- 解析令牌中的用户信息
- 封装用户信息到JSON数据中
- 加密JSON数据
- 将加密后的JSON数据放入到请求头中
好了,经过上述8个步骤,完整的网关已经搭建成功了。
“案例源码已经上传GitHub,关注公众号:码猿技术专栏,回复关键词:9529 获取!”
文章转自公众号:码猿技术专栏
标签
已于2022-7-11 11:45:24修改
赞
收藏
回复
相关推荐