程序设计中的数据库的权限表设计
权限管理RBAC基于角色的访问控制
1.实体对应关系
用户>>>>>>用户-角色>>>>>>角色
角色>>>>>>角色-权限>>>>>>资源
2.权限表设计
多对多关系时为五个表
用户>>>>>>用户-角色关系表>>>>>>角色表>>>>>>角色-资源关系表>>>>>>资源表
3.根据请求的url判断角色(以java为例)
a.实体类中添加角色列表(角色是确定的,用户是变化的)
@ApiModelProperty(value = "角色列表") @TableField(exist = false) private Listroles;
b.在接口和实现类中编写根绝角色获取菜单列表和接口和实现过程方法
//根据角色获取菜单列表 List
c.mapper中添加方法,代码与上相同
d.在xml中编写sql语句
配置xml的resultMap
extends="BaseResultMap">
e.在config中配置过滤器,根据请求url请求所需要的角色
@Component public class CustomeFilter implements FilterInvocationSecurityMetadataSource { @Autowired private IMenuService menuService; AntPathMatcher antPathMatcher = new AntPathMatcher(); @Override public CollectiongetAttributes(Object object) throws IllegalArgumentException { //获取请求的url String requestUrl = ((FilterInvocation) object).getRequestUrl(); List
原文:https://www.cnblogs.com/timewarlock/p/15223558.html