文章目录
1. 环境说明
- 1. 环境说明
- 2. 架构图
- 3. 设计思路
- 3.1 授权服务器
- 3.2 API网关
- 3.3 TokenResolver(TokenArgumentResolver类)
网络隔离是指用户访问的网络环境只能访问负载均衡/API网关,而访问不了后面的微服务机器
2. 架构图- 负责登录认证
- token派发
- token刷新
- 应用接入管理
- …
添加认证中心的sdk负责所有请求的鉴权,包括登录验证和url级别的权限判断,主要的JWT原理如下:
- 拦截请求获取判断是否带有
token参数(parameter和header) - 通过公钥
pubkey.txt解密token - 判断
token中的权限信息是否能访问当前url - 把用户名和角色信息放到请求的
header中,传给后面的微服务
嵌入在微服务程序中负责获取当前登录人,主要原理如下:
- 判断当前url请求的方法有没有带有
@LoginUser注解 - 判断
@LoginUser注解的isFull属性是否为true则通过username查询用户对象 - 构建
SysUser对象传给目标方法
