其实这中间的逻辑非常简单,就是解析的Token中的权限、角色然后和注解中的指定的进行比对 。
@RequiresPermissions这个注解的逻辑陈某并未实现,自己根据业务模仿着完成,算是一道思考题了....
4. 注解使用比如《Spring Cloud Alibaba 实战》项目中有一个添加文章的接口,只有超管和管理员的角色才能添加,那么可以使用@RequiresRoles注解进行标注,如下:
@RequiresRoles@AvoidRepeatableCommit@ApiOperation("添加文章")@PostMApping("/add")public ResultMsg<Void> add(@RequestBody @Valid ArticleAddReq req){ .......}
效果这里就不演示了,实际的效果:非超管和管理员角色用户登录访问,将会直接被拦截,返回无权限 。
注意:这里仅仅解决了下游服务鉴权的问题,那么feign调用是否也适用?
当然适用,这里使用的是切面方式,feign内部其实使用的是http方式调用,对于接口来说一样适用 。
比如《Spring Cloud Alibaba 实战》项目中获取文章列表的接口,其中会通过feign的方式调用评论服务中的接口获取文章评论总数,这里一旦加上了@RequiresRoles,那么调用将会失败,代码如下:
@RequiresRoles@ApiOperation(value = https://www.isolves.com/it/cxkf/jiagou/2023-04-17/"批量获取文章总数")@PostMapping(value = "/list/total")public ResultMsg
总结本文主要介绍了微服务中如何将鉴权下放到微服务中,也是为了解决读者的疑惑,实际生产中除非业务需要,陈某还是建议将鉴权统一放到网关中 。> listTotal(@RequestBody @Valid List
推荐阅读
- 中年人再就业,这三个职业“没面子”,却“有钱途”。
- 饵料|爆护的钓友普遍有五大特征,满足其中三个以上,你也可以
- 张凯|女演员高空坠落死亡后续!曝家中有三个未成年儿女,经纪公司被扒
- |塔罗测:未来三个月能找到心仪工作嘛?
- 成龙|康天庥澄清退出剧组的传言,他直言只要收到通知都会继续拍下去
- 主持人|看67岁白发奶奶才明白:只要会打扮,满头白发又怎样?照样有魅力
- 张碧晨|精明的张碧晨:不要名分只要孩子,看似一无所有,但已经赢了一切
- 求职|面试官贬低求职者,却通知他被录用?深刻的三个原因
- APT 如何运用JAVA注解处理器
- 高校|春招即将截止,银行还有最后一波招聘,满足三个条件都能去