{"repo":"LuckyColorCloud/LoopAuth","free":true,"listed":false,"github":"https://github.com/LuckyColorCloud/LoopAuth","clone":"git clone https://github.com/LuckyColorCloud/LoopAuth.git","description":"一款JavaWeb鉴权框架，同时支持RBAC (角色鉴权校验)、ABAC (规则流引擎鉴权)，并提供会话管理等功能。","language":"Java","stars":48,"topics":["java","security","web","abac","rbac","jwt"],"license":"MIT","category":"security-tools","readme_excerpt":"LoopAuth 一款JavaWeb鉴权框架，同时支持RBAC (角色鉴权校验)、ABAC (规则流引擎鉴权)， 并提供会话管理等功能。 对SpringBoot3以及SpringWebFlux都可支持。 目前包含如下功能： - 注解鉴权 - 代码鉴权 - 登录功能 - 有/无状态登录 - Redis登录业务存储分离 - ABAC权限 公告 - 喜报！LuckyColor开源团队AI研发领航者昌总今日闪耀电视台！作为数字科技先锋，我们持续深耕： - ✅ 智慧数字孪生技术赋能产业升级 - ✅ 超写实数字人多场景应用落地 - ✅ 自主研发AI模型突破行业瓶颈 - 从算法研发到场景落地，从虚拟到现实的数字桥梁，每一步都在创造未来！✨🔥 ![此处应有昌总肖像][link1] ## 写在前面 项目发布初期，希望大家多多点点 Star - Gitee - GitHub - 官方文档 ## 交流群 - QQ群：460304421 - 微信群：请扫下图二维码，备注 LoopAuth加群 ## 抛弃繁琐的权限框架配置，甚至无需配置 yml 即可简单启动 ## SpringBoot快速使用 - ${version} 请查看版本历史，请使用最新正式版，且版本与其余拓展最好保持一致 - SpringBoot3选择后者依赖即可 ### 添加依赖 ### 配置文件 快速体验可以无需配置 yml 文件，完成其他配置直接启动即可 - 登录规则及持久层的配置需要开启 token-persistence 配置项 - access-modes 为从请求获取 token 的位置，同时登录成功或登录续期操作也会主动返回 token 到 HEADER 或 COOKIE 中 ### 简单使用 - 新建 Controller 类 ## ABAC鉴权 - 以下所有代码均为示例代码，可根据步骤编写并运行，理解后可自定义规则 - 示例项目 ### 实现四个属性模型的构建 - 这里的属性模型需要自行根据业务实现值的获取 #### 主题属性 访问者属性，如用户性别、地域等 #### 环境属性 环境属性，如当前时间、访问者IP等 #### 操作属性 - LoopAuthHttpMode为请求类型的枚举，包括GET、PUT、POST或ALL等等所有常见的请求类型 操作属性，如删除、新增、查询等 #### 访问对象属性 访问对象属性，这里是和业务耦合的，如被访问的数据ID区间、被访问的数据类型等 ### 实现 AbacInterface 接口 - LoopAuthHttpMode为请求类型的枚举，包括GET、PUT、POST或ALL等等所有常见的请求类型 #### 自动注入 - 在 AbacInterface 的实现类上加上 @Component 注解即可 #### 手动注入 - 保证项目启动时执行下面语句即可 ### 注入拦截器 ### 创建 Controller 测试一下 - 可以更改 setSupplierMap() 中的返回值、或请求类型理解 ### 注解方式拦截 - 我们并不建议使用注解鉴权，ABAC的特点是鉴权粒度更细，但是ABAC的灵活修改也很重要。我们希望你可以在无需重启项目的前提下完成ABAC的权限变更 - 注解鉴权ABAC的方式与上面其实大同小异 - 唯一的区别就是无需实现 AbacInterface 接口 - 你只需要在接口上添加注解，如下 - 然后注册注解拦截器 [link1]:data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wB","default_branch":null,"files":null,"tree":[],"storefront":"/r/LuckyColorCloud","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/LuckyColorCloud/LoopAuth/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}