项目背景:
和甲方合作项目,项目基础数据在甲方那里,后端要获取基础数据,需要调用甲方接口获取token,再用token调用其他接口获取相应的基础数据,在此背景下,完成了开发。最后测试阶段,甲方提出,要对用户进行鉴权,根据权限获取对应的基础数据,因此后端不能直接调用甲方的登陆接口获取token了,要从web端拿到token,所以要对已完成开发的部分进行改造。
实现方案:
1.所有要调用到甲方基础数据的接口上添加注解@RequestHeader,控制层拿到token后放到业务层去处理,方法显然可行但很呆,而且工作量巨大,如果其他微服务对该服务的接口存在调用,还会报错。
2.使用SpringBoot中Filter获取token,把token放到本地线程中,只修改以前封装好的获取甲方token的方法,该方案对代码改动小,安全性上有保障。