Shiro和Zuul权限管理整合方案
引言
之前权限管理1.0是采用的Shiro来完成的。但是由于后来各个模块的开发并入,为了方便服务层微服务的接入,引入了Zuul API网关做路由转发。本次2.0方案主要是针对经过Zuul进行转发的API进行更细粒度的权限校验。
原1.0权限校验流程图
通过这张图可以看出,在1.0的时候只是草率的把Zuul并了进去,并且简单做了登录认证,但是并没有对Zuul转发的路由做授权认证。
现2.0权限校验流程图
2.0 对比1.0就是在Zuul转发前增加了一层权限校验。
Zuul权限校验的实现细节
需要变动的部分
界面操作习惯
新增菜单按钮的时候填写的权限信息新格式为
{REQUEST_METHOD}:{REQUEST_URI}
例如
POST:/om-logic/defeact/search
POST:/allAcl/acls/**
代码部分
仅仅对网关层进行变动即可
总结
这次变动整体的思路就是尽可能的对原架构进行小的调整,最后思考后采用这种方案实现起来代价最小,只需要更改网关的Zuul的前置filter。
这个方案的优点在于:
- 不需要更改前端代码
- 不需要对数据库表结构进行调整
- 不需要对数据库历史数据进行清洗转换
- 完美兼容Shiro自身权限验证
PS:其实最省心的权限管控的方案是IP白名单