easylimit
框架是一个同时适用于传统MVC
项目开发模式以及前后端分离
项目开发模式的权限控制框架。需要注意的是,目前此框架仅限于在基于Spring
的Java Web
项目中运行,且主要依赖spring-context
、Jackson
、Jedis
这几个组件。
在使用上,目前主要提供了以下功能特性:
- 同时支持
MVC
和前后端分离
项目开发模式的权限控制 - 支持完整的
RBAC
权限控制 - 默认实现多种
session_id
生成方式,包括:随机字符串
、UUID
、雪花算法
- 默认实现多种
session
和token
存储方式,包括:基于ConcurrentHashMap
的内存存储、使用Redis
等缓存存储 - 默认实现AOP切面,支持多种权限控制注解,包括:
@RequiresLogin
、@RequiresPermissions
、@RequiresRoles
- 默认支持多种
Access Token
传参方式,且可以灵活扩展 - 默认实现“是否踢出当前用户的旧会话”的选项
- 默认实现多种登录登录方式、多种密码校验规则的简单接入。前者包括:“用户名+密码”登录、“手机号码+短信验证码”登录,后者包括:
Base64
、Md5Hex
、Sha256Hex
、Sha512Hex
、Md5Crypt
、Sha256Crypt
等其他自定义密码加密/摘要方式 - 使用简单,可扩展性强
- 代码规范,注释完整,文档齐全,有助于通过源码学习其实现思路
使用方式及详细说明可以查看这个文档站点:https://easylimit.zifangsky.cn/
前几年的时候,我很喜欢Apache Shiro
这个权限控制框架,不过后面慢慢地Shiro
不再满足项目开发的实际需求,从而让我萌生了自己动手开发一个权限控制框架的想法。不过在easylimit
这个框架的早期开发阶段,我参考了很多Shiro
的设计理念以及源码实现,在此我表示对Apache Shiro
开发组及其社区由衷的感谢!
- Apache Shiro官网:https://shiro.apache.org/
- Apache Shiro源码:https://github.com/apache/shiro
此外,我在设计基于前后端分离
项目开发模式的权限控制时,也借鉴了一些JSON Web Token (JWT)
的设计思想,在此也表示感谢!
欢迎大家积极使用这个框架,同时我也希望这个框架可以真正帮助到大家。如果大家在使用过程中有什么疑问或者好的建议,可以在项目中提 Issue,也可以加这个Q群(590424939)跟我即时交流。