本模块对shiro进行拓展,增加对hsweb-authorization-api中的注解进行实现。 实现类如下:
注解名称 | 实现类 |
---|---|
@Authorize |
ExpressionAnnotationMethodInterceptor |
@RequiresExpression |
ExpressionAnnotationMethodInterceptor |
@RequiresDataAccess |
DataAccessAnnotationMethodInterceptor |
控制逻辑简述:
- 获取被拦截方法的注解信息,取得当前需要验证的permission,action。如: user,query
- 根据上一步获取到需要验证的permission和action获取当前登录用户权限信息中配置的控制规则(控制规则可以在前端进行设置)
- 调用控制器进行验证
可自己实现DataAccessHandler接口并注入spring以实现自定义的控制方式
内置的控制方式
- CustomDataAccessHandler 自定义控制器
- OwnCreatedDataAccessHandler 控制只能操作自己创建的数据
- ScriptDataAccessHandler 使用脚本方式控制
- FieldScopeDataAccessHandler 控制字段的值范围,如: orgId in (1,2,3,4)
- FieldFilterDataAccessHandler 控制字段的操作范围,此控制器替代之前的FieldAccess功能
注意: 控制需满足的条件请查看控制器源代码查看注释获取