鉴权案例

来源:互联网 发布:mysql explain的安装 编辑:程序博客网 时间:2024/04/29 17:42
  • 项目背景

    本项目为销售运营体系的中的一个子系统,系统中的权限分为两个部分
    1、 ACL系统统一对人员进行行为鉴权
    2、 数据层面的逻辑鉴权
      目前系统中的鉴权使用方式纷杂多样,且基本都写在了每一个处理中了,跟ACL系统交互也不统一
    ,并且ACL的权限点直接在本项目中使用也不是很方便(因为ACL权限点是在发布的时候才有的)

  • 任务和方案

1、 ACL权限要在当前系统中基于配置实现映射关系,发布的时候就可以直接配置正常权限点即可
2、 ACL权限综合管理,并实现缓存机制
  a) 定时失效(最终选定方案)
  b) 异步消息,被动刷新
3、 验证逻辑统一综合处理
4、 系统中各种的资源查询的时候存在安全漏洞

  • 代码实施

1、 基于spring的资源配置完成权限的的自动替换,在系统初始化的时候会把对应的mapping初始化到系统中
2、 在代码中单独提取一个资源服务来提供所有的缓存
3、 鉴权逻辑统一处理
  a) 基于注解实现构建各种的鉴权单元,如支持多组ACL的、支持CID的、支持关联关联的等
  b) 针对于不同的鉴权单元实现独有的鉴权逻辑
  c) 使用责任链、状态和策略相结合的模式来控制鉴权的流程
4、 使用拦截器配合3中的统一鉴权器来解决查询的安全漏洞

  • 项目完成后总结

1、 提升了根据业务背景提取需求拆解任务的能力
2、 对责任链模式、状态模式、策略模式这些设计模式有了更深的体悟
3、 提高的了对注解和反射以及泛型等知识的体悟
4、 写代码的技术能力也得到的很大的提升,在多次的代码重构过程中,用到的技术越来越熟练,更加的运用自如
5、 对项目中应用到的技术的使用情景进行大脑风暴,以期达到举一反三的效果,可以更好的把自己的技术应用到不同的生活需求中去。
6、 提升个人对业务的了解程度,再有类似需求可以更快速准确的去把握住重点,并且也会在业务模型和技术选型上有更进一步的见解。而且在思维上也会更具有前瞻性

0 0
原创粉丝点击