一、序言
系统安全一直是在系统开发中不可规避的问题,而权限控制又跟系统安全密不可分,大到用户的访问,小到一个页面的按钮,都有可能涉及到权限的控制。而renren-security便给我们提供了一套权限系统开发的解决方案。
renren-security是"人人社区"社区开源的轻量级权限管理系统。系统采用SprinBoot、Mybatis、Shiro框架进行开发,极低门槛,拿来即用,支持分布式部署、Quartz分布式集群调度、部门管理、数据权限、云存储等功能。
二、项目特点
灵活的权限控制,可控制到页面或按钮,满足绝大部分的权限需求;完善的部门管理及数据权限,通过注解实现数据权限的控制;完善的XSS防范及脚本过滤,彻底杜绝XSS攻击;支持MySQL、Oracle、SQL Server、PostgreSQL等主流数据库。
三、系统设计
系统结构的设计也比较清晰,由admin、api、common等几个模块组成,每个模块实现的功能大体如下:
common:公共模块,以jar包的形式被其他模块所依赖。实现了一些工具类和公共功能。包含时间处理、分页、Sql过滤、Xss过滤和Redis切面定义、自定义异常处理等功能。
admin:管理系统模块,以war包形式独立部署。基于前后端分离的思想,主要用来用来开发后台管理系统。包含用户管理、角色管理、部门管理、菜单管理、定时任务、文件上传、API校验,同时采用Redis进行数据缓存,支持单机和集群的部署。
api:API接口模块,以war包形式独立部署。模块主要提供给前端UI调用的一些业务接口,实现了用户注册、登录、接口权限认证和用户信息获取。同时整合了swagger2实现了API接口文档,方便了接口的查询和调试。