原有认证方式问题
- 认证中心 checktoken 接口去调用的是 redistokenstore 的序列化信息,若我们更新用户信息 、权限信息 并不会试试更新,需要用户重新登录
- 性能瓶颈问题, 每次携带令牌调用资源服务器都会先执行 checktoken 网络远程校验令牌
优化扩展方案
- 重构资源服务器的 ResourceServerTokenServices ,直接本地调用 redis 查询 token 对应的用户username
- 然后根据 username 调用 userDetailsService.loadUserByUsername 用户的全部信息(实时数据和库同步,使用cache 同步)
缺点:
- 这样相当于所有资源服务器 直接访问认证服务器的redis数据,而不是通过rul请求的方式,会造成安全性的问题
(例如所有资源服务器都可以实时访问认证服务器的redis数据源) 做不到一个资源服务器一个redis库
实现参考 EnableAiopsResourceServer
- isLocal=true 本地校验 提高性能,但是破坏了安全性,内网下建议采用
- isLocal=false 远程校验 遵循oauth2.0通用协议,牺牲性能
扫描二维码,分享此文章