前沿资讯 / 这可能是史上功能最全的 Java 权限认证框架!GitCode迎来新成员Sa-Token
这可能是史上功能最全的 Java 权限认证框架!GitCode迎来新成员Sa-Token
这可能是史上功能最全的 Java 权限认证框架!GitCode迎来新成员Sa-Token

2024-07-31发布

近日,GitCode平台上迎来了一个全新的开源项目——Sa-Token,以其轻量级、高效率的特点,为Java权限认证领域带来了一场革命,现已加入G-Star计划成为优秀毕业项目。

在当今快速发展的互联网时代,权限认证是每个在线系统不可或缺的一部分,网络世界的每一个角落也都离不开权限认证的守护。

Java作为企业级应用开发的首选语言,拥有众多成熟的权限认证框架,其权限认证框架的选择直接关系到系统的安全性与用户体验。随着业务需求的不断演变,传统的权限认证框架逐渐显得力不从心。开发者们迫切需要一种更简洁、更灵活的解决方案。 image.png

Sa-Token:权限认证的新选择

Sa-Token是一个轻量级的Java权限认证框架,专注于解决登录认证、权限认证、单点登录、OAuth2.0、分布式Session会话、微服务网关鉴权等一系列复杂的权限问题。与传统的权限认证框架相比,Sa-Token以简单、优雅、强大的特性,为开发者提供了一种全新的选择,开发者们再也不需要深陷于繁琐的配置和复杂的代码逻辑,只需简单的几行代码,即可实现强大的认证功能。

Sa-Token的设计哲学是“少即是多”, 通过减少不必要的复杂性,让权限认证变得直观而高效。

0922698fa55d09d761d91d2fe627ed16.png

简单:无需复杂配置,开箱即用

Sa-Token的设计理念是简单至上。开发者无需编写繁琐的配置文件,也不需要实现复杂的接口,仅需一行代码即可完成会话登录认证。例如,仅需一行代码即可完成会话登录认证:

java
StpUtil.login(10001);

这种极简的API设计,让Sa-Token在易用性上远超传统框架。

强大:集成多项高级特性,覆盖广泛场景

Sa-Token不仅简单易用,而且功能强大。它集成了登录认证、权限认证、单点登录、OAuth2.0等多种高级特性,几乎可以满足所有业务场景的需求。无论是单端登录、多端登录,还是同端互斥登录、七天内免登录,Sa-Token都能轻松应对。

易用:一行代码实现复杂功能

Sa-Token的API设计简洁优雅,大量高级特性仅需一行代码即可实现。无论是踢人下线、注解式鉴权,还是路由拦截式鉴权,开发者都能快速上手,大幅提高开发效率。

高扩展:灵活定制,满足个性化需求

Sa-Token的高扩展性是其另一大亮点。几乎所有组件都提供了扩展接口,90%以上的逻辑都可以按需重写。这意味着开发者可以根据自己的需求,对Sa-Token进行深度定制,打造专属的权限认证解决方案。

Sa-Token 功能一览

Sa-Token 目前主要五大功能模块:登录认证、权限认证、单点登录、OAuth2.0、微服务鉴权。

登录认证 : 单端登录、多端登录、同端互斥登录、七天内免登录。

权限认证 : 权限认证、角色认证、会话二级认证。

踢人下线: 根据账号id踢人下线、根据Token值踢人下线。

注解式鉴权: 优雅的将鉴权与业务代码分离。

路由拦截式鉴权: 根据路由拦截鉴权,可适配 restful 模式。

Session会话: 全端共享Session,单端独享Session,自定义Session,方便的存取值。

持久层扩展: 可集成 Redis,重启数据不丢失。

前后台分离: APP、小程序等不支持 Cookie 的终端也可以轻松鉴权。

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的发展历程是一段关于创新与追求卓越的旅程。它诞生于对现有Java权限认证框架的深刻洞察和对开发者需求的敏锐捕捉。创建这个项目的动机源于一个简单而坚定的信念:提供一个更简单、更高效、更安全的权限认证解决方案,让Java开发者能够专注于业务逻辑的实现,而非被复杂的认证流程所困扰。

尽管目前市场上存在多种解决方案,但它们往往过于复杂,难以满足快速变化的业务需求。因此,Sa-Token的创建,是对这一市场空白的有力填补。从最初的概念构想到现在的成熟框架,Sa-Token经历了不断的迭代和优化,每一步都凝聚了众多开发者的心血和智慧。

Sa-Token致力于成为一个一站式的权限认证解决方案,成为企业在Java权限认证领域的首要选择。能够覆盖95%以上的权限认证需求,无论是传统的单体应用还是现代的微服务架构,Sa-Token都能够提供强大的支持,让企业不再为复杂的认证流程头疼。

我们希望通过Sa-Token,企业能够轻松实现各种认证需求,从而将更多的资源和精力投入到核心业务的发展中。随着Sa-Token在GitCode平台上的不断成长,我们相信,它将实现这一宏伟的愿景,成为国产Java权限认证领域的佼佼者。

开源许可证

Apache-2.0

项目地址