java实现gateway_Spring Cloud Gateway实现Token校验

在我看来,在某些场景下,网关就像是一个公共方法,把项目中的都要用到的一些功能提出来,抽象成一个服务。比如,我们可以在业务网关上做日志收集、Token校验等等,当然这么理解很狭隘,因为网关的能力远不止如此,但是不妨碍我们更好地理解它。下面的例子演示了,如何在网关校验Token,并提取用户信息放到Header中传给下游业务系统。

1. 生成Token

用户登录成功以后,生成token,此后的所有请求都带着token。网关负责校验token,并将用户信息放入请求Header,以便下游系统可以方便地获取用户信息。

ba281da78478fd619004a4762a0b1c31.png

edf9fc706ccd2438ca31a3de69c4cd37.png

为了方便演示,本例中涉及三个工程

公共项目:cjs-commons-jwt

认证服务:cjs-auth-service

网关服务:cjs-gateway-example

1.1. Token生成与校验工具类

因为生成token在认证服务中,token校验在网关服务中,因此,我把这一部分写在了公共项目cjs-commons-jwt中

pom.xml

a60b02cf814df4c17fe25f4834568698.png

87737f117a7dcb527ca1edd614c3c64b.png

JWTUtil.java

9530a8c96b402fd99f03a89d3d046774.png

1a05bbeef65c24a19894c016c77adb5a.png

21bd8c4b93d1d64d0f89ba89f3949a32.png

ResponseCodeEnum.java

89108173f7bf002867395d004bbcb97f.png

d64b5dd649e493bbc2cf18015baa0a50.png

ResponseResult.java

01c8946f3a3d32a3f865a2df8b0ae80f.png

bd804635d4996e4535f7534e5355467b.png

1.2. 生成token

这一部分在cjs-auth-service中

pom.xml

3443a0395db0774de9b5af5fe9a33b88.png

de08f6a426f004c4d316f53f9f2b26c2.png

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值