老师麻烦帮忙分析一下这种想法有没有啥问题
来源:1-1 课程导学

jiiiiiin
2019-09-11
老师请看看这种想法是否合理:
1.因为默认springsecurity的鉴权机制,每次都要load库,即存在性能瓶颈
2.所以我是这样打算:
- 单独有一个认证中心(放认证服务器)
- 网关里面集成鉴权服务器
- 网关在启动的时候或者懒加载,不同渠道对应角色的资源(资源、接口定义)信息
- 在用户身份认证完成之后JWT里面(都不用做特殊增强)缓存用户唯一标识和其角色组信息
- 在下一次请求进来到网关进行统一鉴权的时候,就根据用户的角色去缓存池(redis)中获取用户的全量权限信息,完成鉴权
- 针对缓存信息,我这边想在user-server哪里通过消息队列来解决缓存信息同步问题。
这样的好处在于身份认证和鉴权不用每次都去db抓全量数据,您觉得是否可行,目前我们实现的是,认证之后单个用户的认证权限信息如redis,这样不好的地方在于每个用户都要如redis,redis本身也存在瓶颈。
不知道我的表述是否清楚 :)
写回答
3回答
-
JoJo
2019-09-12
了解。按我的理解有两个可以商榷的地方,一是是否需要每个用户的认证权限信息入redis?这样就要保证权限变化时既要同步角色的权限又要同步每个用户的权限。二是只在网关鉴权,有可能出现:通过网关不能访问A,但是可以访问B,而B又调了A,造成越权。
312019-09-12 -
jiiiiiin
提问者
2019-09-11
@JoJo
00 -
jiiiiiin
提问者
2019-09-11
追加一点,就是,这种思路是不是“最佳”解决方案? 哈哈
00
相似问题