应某学姐的要求,我记录了一些,在设计实验室框架过程中的一些想法。以上观点是我个人观点。
权限一直都是各大管理系统中最为重要的一个环节,其中如何管理权限和模块也就成了重中之重。现阶段,主要存储权限的位置有数据库,和文件两种方式。数据库存储权限的方式我就不多说了,这是主流。这里我们要谈一谈,用文件存放权限。
就我个人而言觉得权限放在文件里是一把双刃剑。权限是整个管理系统的核心所在,正确的权限分配和管理尤为重要,在实验室的框架中,我们采用了json文件的形式存储权限,这个有好处也有坏处。当然这个存储方式不是我们所决定的,是老师决定的。在我看来权限用文件存储的方式有好处也有坏处。我们先来谈一谈如何设计的权限。
这是一个基本格式:
"simple/system/CodeTable": { "code": "simple/system/CodeTable", // 模块编码 "name1": "码表", // 中文名称 "url": "/simple/system/CodeTable", // 路由地址 "route": "/simple/system/CodeTable", // 路由地址 "iconClass": "", // 图标 "displayIndex": 0, // 展示优先级 "parentCode": "simple/system", // 父级模块编码 "parentName": "系统管理", // 父级模块名称 "moduleType": "电脑模块", // 模块类型 "isInUse": "是", // 是否启用 "routeParamsObj": "", // 我也不知道是啥 "permissions": [ // 权限,这里面包括了这个模块的所有权限 { "code": "simple_system_CodeTable_Edit", "name1": "编辑码表", "fullName": "simple.系统管理.码表.编辑", "moduleCode": "simple/system/CodeTable", "urls": [ "/simple/system/CodeTable/findCodeTableForEdit", "/simple/system/CodeTable/updateCodeTable", "/simple/system/CodeTable/findCodeTablesWithIdNameByName" ] }, { "code": "simple_system_CodeTable_Delete", "name1": "删除码表", "fullName": "simple.系统管理.码表.删除", "moduleCode": "simple/system/CodeTable", "urls": [ "/simple/system/CodeTable/deleteCodeTable" ] }, { "code": "simple_system_CodeTable_View", "name1": "查看码表", "fullName": "simple.系统管理.码表.查看", "moduleCode": "simple/system/CodeTable", "urls": [ "/simple/system/CodeTable/findCodeTables", "/simple/system/CodeTable/findCodeTableForView" ] }, { "code": "simple_system_CodeTable_Add", "name1": "新增码表", "fullName": "simple.系统管理.码表.新增", "moduleCode": "simple/system/CodeTable", "urls": [ "/simple/system/CodeTable/createCodeTable", "/simple/system/CodeTable/saveCodeTable", "/simple/system/CodeTable/findCodeTablesWithIdNameByName" ] } ] },
其中key,就是模块编码。value就是这个模块里面的一些参数和数据。其中权限是和模块放在一起的,一个模块的权限都集中存放,便于管理。
在判断权限方面,我们才用遍历的方式,对该用户所具有的权限进行判断,如果满足条件就放行,如果不满足就提示错误。
if (loginUser != null) { boolean hasPermission = ModuleManager.hasPermission(uri, loginUser.getUserRoles()); if (hasPermission) { return true; } }
现在来说一下我自己的看法。
首先文件存储的话,在获取数据的时候非常的快,优于数据库存储,可以在一定程度上提高系统性能,但是文件存储也有一个致命的弱点,丢失。当所有权限都集中于一个文件的时候,文件一旦丢失,所造成的影响将是致命的。所以灾备十分重要,需定期维护json文件,并且及时备份。同时将业务权限和系统权限分开,减少损失。总之文件存放权限,用得好是一把利剑用不好,将是系统崩溃的主要切入点
原文:https://www.cnblogs.com/dddAndwerGuan/p/10261521.html