用户、角色和权限开发导言最近花了一段时间在做权限开发者一块,从设计到编码,我都全程参与了,对权限开发也有了一个本质上的了解,权限管理作为一个系统最基本也是最重要的功能之一,在一个系统中是非常重要的,今天我就侃大山,聊聊我这个系统的权限开发的一些东西,与大家交流交流
1、系统的原有权限管理模式之前这个系统的权限管理是通过配置文件来处理的,大概流程是这样的,把用户分成多个用户组,然后每个用户组对应着多个用户的id,每次访问页面的时候,都会读取这个配置文件的信息,判断登录用户的id属于哪个用户组,然后在页面判断这个用户组是否有访问这个链接的权限
配置文件的格式是这样的:{"adm":[1,2,34],"dev":[5,6,1]}这样会带来什么问题呢
有以下几个:•权限管理混乱,一个用户id可能会在多个权限组中•每次更新配置文件,都要重新上线,麻烦•没有图形化界面,配置权限困难•页面有太多的if判断语句,造成代码可读性差2、新的权限管理开发这里要强调一遍,这个系统数没有用外面流行的框架的,都是jsp加上之前封装的框架来使用的,所以你们可以发现我这个权限开发是没有用到以前用框架开发权限要用到的过滤器,监听器之类的,或者你可能会说,没有用框架也可以用过滤器和监听器啊,因为这是Servlet的东西
在这里我要解释一下,现在市面上的权限管理我个人觉得大致可以分为两种:1
用户进入系统的时候不判断权限,把系统中的所有功能入口都开发给用户,每次用户点击相应的功能入口时,通过链接和用户判断该用户是否有使用该功能的权限,有权限则进入,没有权限则跳转到没权限的提示页面,这种功能一般都是使用过滤器来完成的2
在用户进入系统的时候就判断用户的权限,根据用户的权限开发相应的功能入口,不同权限的用户看到的页面是不一样的
相比第一种来说,这种的好处是可以屏蔽掉用户没有权限访问的功能入口,用户只能看到自己权限所