通用web应用的权限管理实践

笔者入职新公司后,被安排参与开发一个后台管理的web站点,作用是针对组里的主系统进行各种运营及配置操作。由于笔者还不了解主系统的业务,所以负责开发后台管理系统的权限管理模块。

最终效果

功能需求:

权限都以角色的方式配置;

角色显示的菜单可以配置;

允许角色请求的url可以配置;

用户请求重要url时,要保留请求记录(包含请求参数);

管理员可以显示全部菜单、请求全部url。


数据库E-R图

系统使用公司提供的sso实现登录,用户的身份选取sso接口获取到的公司邮箱地址作为标识。

用户-角色:用户与角色的对应关系(一个用户只能有一种角色)。

角色:角色的简单描述。

菜单:菜单的简单描述及入口url(菜单显示时,条目按“分组序号”排序)。

url:url的简单描述,及标记是否保存请求记录。

用户操作记录:标记为保存请求记录的url,被post请求时,记录用户及请求入参。

角色-url、角色-菜单:角色分配的菜单、url。

拦截器注解

登陆、权限校验,通过两个拦截器实现。

权限相关的数据统一维护在内存中,修改时统一更新(若web采用集群方式部署,需要使用zk通知更新)。


权限校验拦截器处理流程

系统的界面使用LigerUI实现,部分功能效果图:


用户-角色
角色
角色-url
角色-菜单
操作记录
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,083评论 19 139
  • 这篇文章介绍了Mobile BI(移动商务智能)使用过程中涉及的各种身份认证的方式,主要目的是对这些方式的原理进行...
    雨_树阅读 2,095评论 1 2
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,926评论 25 709
  • 展信愉快 你好, 我是静静。 很开心你能看到这封盛满我小小心意的信笺,它饱含了我对爱情所有美好的向往、我的爱情观以...
    少女静520阅读 342评论 0 3
  • 每周日,是孩子一周一次的语文课外学习。陪着孩子到培训班听了几次课,我渐渐迷上 了这个美文课。为什么要叫“美文...
    苍山竹石阅读 316评论 1 5