JavaWeb-权限管理

本文探讨了JavaWeb中的权限管理,包括User、Role、Function三表模型,多对多关系实现,以及如何处理权限冲突。在角色与功能表中增加menu_btn字段以控制按钮权限,同时分析了公司代码在处理用户角色权限合并时可能存在的问题。
摘要由CSDN通过智能技术生成

最近看公司的代码,对权限管理颇有兴趣,恰好今天有空,就记录了以下,如果有错误,还望指正

正统表结构:

图片摘自慕课

从图上可以看出,表结构主要有User Role Function 三个表,分别对应用户、角色、功能,通过这三张表完成权限的控制和实现。

User 与 Role 是多对多关系,使用第三方UserRole表来维护
Role 与 Function 同样也是多对多的关系,多个角色对应多个功能(每个模块都有对应的id,功能即模块,即menu),使用第三方表RoleFunction来维护

大概思路:

用户登陆时加载菜单,根据用户查询用户角色,根据用户角色查询用户功能,将查询到一个menu code,然后返回这些menu code

在控制层在根据menu code 获取并加载菜单

但是无法对每个menu 中的按钮权限进行控制(比如添加、删除、审核)

解决办法:在Role和Function的第三方表中插入一列:menu_btn,代表该该角色下的功能拥有什么样的按钮权限

然后查询时,封装一个拥有menu_btn的实体类menu,用来记录权限,如果没有任何button,则不显示任何菜单


项目做法:

表结构:

T_SYS_USER 用户表

T_SYS_ROLE 角色表

T_SYS_USER_ROLE 用户角色关系表

T_SYS_MENU 功能表

T_SYS_ROLE_PRIVILEGE 按钮权限

[关于权限按钮列表]:

系统有固化的权限按钮,新增,修改,删除,查看,审核..

名称对应:ADD_BTN,MOD_BTN,DEL_BTN,VIEW_BTN,AUDIT_BTN…应:ADD_BTN,MOD_BTN,DEL_BTN,VIEW_BTN,AUDIT_BTN…<

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值