云e办✧权限控制详解
用户扮演角色,与菜单所需要的角色,如果包含则可以访问
---
t_admin---t_admin_role---t_role
t_menu---t_menu_role---t_role
---
- 首先查出每个菜单对应的角色列表List<menu\>
- 通过实现FilterInvocationSecurityMetadataSource接口,获取访问url中的菜单路径,那次路径与获取的菜单列表是否包含,是则返回次路径需要的角色名称,返回一个String[]数组,如果不包含,则设置一个是登录就可以访问的角色名并返回(为什么不直接写通过菜单获取角色,那是因为菜单无法通过url进行条件查找)
- 通过用户id获取用户所拥有的角色列表
- 此时,通过自定义逻辑,当用户不为空,则获取它对应的角色列表,存放到list<role\>,此时再Admin可以通过用户集合属性直接获取一个角色姓名集合返回权限
- 编写一个过滤器实现AccessDecissionManager接口,在里面判断是否是登录就显示,或者是用户的角色是否是菜单角色集合内的,再在SpringSecurity配置调用即可
CRM 权限控制(RBAC)
- 前端:FreeMarker+嵌入式函数
- 后端:自定义注解+Aop
通过用户扮演角色,角色拥有对应权限(权限码),在用户登录时,通过用户ID,与t_role和t_menu和
t_menu_role三张表联查,得出当前用户的权限码,配合在对应的方法上加注解,非指定的权限码值,不可
访问,即可
方便查看,写此篇