首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >大厂都在用!一款开源社区60k stars的极致轻量级权限认证框架

大厂都在用!一款开源社区60k stars的极致轻量级权限认证框架

原创
作者头像
IT学习日记
修改2024-12-20 14:24:53
修改2024-12-20 14:24:53
4120
举报

写在前面

大家好,这里是IT学习日记。今日推荐项目:Sa-Token

1000+优质开源项目推荐进度:2/1000。如需更多类型优质项目推荐,请在文章后留言。

项目介绍

Sa-Token 是一个轻量级的 Java 权限认证框架,集成了五大核心模块:登录认证、权限认证、单点登录、OAuth2.0 认证以及微服务鉴权。在开源社区获得超过46K Stars。

Sa-Token
Sa-Token

项目优势

  • 在开源社区中广受认可,单在 Gitee 平台上便获得了超过 42K 的 Stars。
  • 社区活跃度高,拥有详尽的文档和强大的开发团队,能够迅速修复存在的漏洞。
  • 众多知名大厂采用并通过实战验证,框架经过持续迭代,稳定性极高。

项目的核心模块

  • 登录认证 —— 支持单端登录、多端登录、同端互斥登录,七天内免登录。
  • 权限认证 —— 包括权限认证、角色认证和会话二级认证。
  • 踢人下线 —— 可根据账号ID或Token值踢人下线。
  • 注解式鉴权 —— 优雅地将鉴权逻辑与业务代码分离。
  • 路由拦截式鉴权 —— 基于路由进行拦截鉴权,适配RESTful模式。
  • Session会话 —— 全端共享Session、单端独享Session、自定义Session,便于存取值。
  • 持久层扩展 —— 支持集成Redis,确保重启数据不丢失。
  • 前后台分离 —— 适配不支持Cookie的终端,如APP、小程序等,轻松实现鉴权。
  • Token风格定制 —— 内置六种Token风格,可自定义Token生成策略。
  • 记住我模式 —— 支持“记住我”模式,重启浏览器免验证。
  • 二级认证 —— 在已登录基础上再次认证,提升安全性。
  • 模拟他人账号 —— 实时操作任意用户状态数据。
  • 临时身份切换 —— 将会话身份临时切换为其他账号。
  • 同端互斥登录 —— 类似QQ手机电脑同时在线,但两个手机上互斥登录。
  • 账号封禁 —— 提供登录封禁、按业务分类封禁和按处罚阶梯封禁功能。
  • 密码加密 —— 提供基础加密算法,支持MD5、SHA1、SHA256、AES加密。
  • 会话查询 —— 提供方便灵活的会话查询接口。
  • Http Basic认证 —— 一行代码集成Http Basic、Digest认证。
  • 全局侦听器 —— 在用户登录、注销、被踢下线等关键操作时进行AOP操作。
  • 全局过滤器 —— 便捷处理跨域,全局设置安全响应头等操作。
  • 多账号体系认证 —— 支持一个系统多套账号分开鉴权(如商城的User表和Admin表)。
  • 单点登录 —— 内置三种单点登录模式:同域、跨域、同Redis、跨Redis,支持前后端分离架构。
  • 单点注销 —— 任意子系统内发起注销,即可全端下线。
  • OAuth2.0认证 —— 轻松搭建OAuth2.0服务,支持openid模式。
  • 分布式会话 —— 提供共享数据中心的分布式会话方案。
  • 微服务网关鉴权 —— 适配Gateway、ShenYu、Zuul等常见网关的路由拦截认证。
  • RPC调用鉴权 —— 支持网关转发鉴权和RPC调用鉴权,确保服务调用安全。
  • 临时Token认证 —— 解决短时间的Token授权问题。
  • 独立Redis —— 将权限缓存与业务缓存分离。
  • Quick快速登录认证 —— 为项目零代码注入一个登录页面。
  • 标签方言 —— 提供Thymeleaf标签方言集成包,提供beetl集成示例。
  • JWT集成 —— 提供三种模式的JWT集成方案,支持Token扩展参数能力。
  • RPC调用状态传递 —— 提供dubbo、grpc等集成包,确保RPC调用时登录状态不丢失。
  • 参数签名 —— 提供跨系统API调用签名校验模块,防止参数篡改和请求重放。
  • 自动续签 —— 提供两种Token过期策略,灵活搭配使用,并支持自动续签。
  • 开箱即用 —— 提供SpringMVC、WebFlux、Solon等常见框架集成包,开箱即用。
  • 最新技术栈 —— 适配最新技术栈,支持SpringBoot 3.x和JDK 17。

支持多种单点登录方案

Sa-Token SSO 提供三种模式,能够解决在同域、跨域、共享Redis、跨Redis、前后端一体、前后端分离等不同架构下的单点登录(SSO)接入问题:

  • 前端同域:指多个系统可以部署在同一个主域名之下,如:c1.domain.com、c2.domain.com、c3.domain.com。
  • 后端同Redis:指多个系统可以连接同一个Redis。(无需将所有项目数据放在一个Redis中,Sa-Token提供 权限缓存与业务缓存分离 的解决方案)。
  • 模式三:如果既无法做到前端同域,也无法做到后端同Redis,可以采用Http请求校验ticket获取会话的方式。
  • NoSdk模式:提供不使用Sa-Token的系统对接示例。
  • sso-server接口文档:提供接口文档,不使用Java语言的系统也可以对接。
  • 前后端分离整合方案:无论是sso-server还是sso-client的前后端分离都可以整合。
  • 安全校验:提供域名校验、ticket校验、参数签名校验,有效防止ticket劫持和请求重放等攻击。
  • 参数防丢:Sa-Token-SSO内有专门算法确保参数不丢失。例如,登录前的URL是:http://a.com?id=1&name=2,登录成功后仍然是:http://a.com?id=1&name=2。
  • 用户数据同步/迁移方案建议:包括开发前统一迁移、运行时实时数据同步、根据关联字段匹配、根据center_id字段匹配等。
  • 直接可运行的demo示例:提供示例,帮助快速熟悉SSO大致登录流程。

项目体验

如果这篇文章对您有帮助,请一定帮我点个 “关注”“点赞”,这对我非常重要。我将会继续推荐更多优质项目和新闻。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 写在前面
  • 项目介绍
  • 项目优势
  • 项目的核心模块
  • 支持多种单点登录方案
  • 项目体验
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档