Skip to main content

Sureness 介绍

面向REST API的高性能认证鉴权框架

License Maven GitHub pull request check contexts Gitter GitHub Release Date star star

📫 背景

在主流的前后端分离架构中,如何通过有效快速的认证鉴权来保护后端提供的REST API变得尤为重要。对现存框架,不原生支持RESTfulApache Shiro, 还是深度绑定SpringSpring Security,或多或少都不是我们的理想型。
于是乎Sureness诞生了,我们希望能解决这些,提供一个面向REST API无框架依赖,可以动态修改权限多认证策略更快速度易用易扩展的认证鉴权框架。

🎡 介绍

Sureness 是我们在深度使用 Apache Shiro 之后,吸取其优点全新设计开发的一个认证鉴权框架 面向 REST API 的认证鉴权,基于 RBAC (用户-角色-资源)主要关注于对 API 的安全保护
无特定Web框架依赖(已有 Spring Boot,Quarkus,Javalin,Ktor,Micronaut,Jfinal,Solon 等集成样例)
支持动态修改权限配置(动态修改配置每个 API 谁有权访问)
支持 Websocket ,主流 HTTP 容器 ServletJAX-RS
支持多种认证策略, JWT, Basic Auth, Digest Auth ... 可扩展自定义认证方式
基于改进的字典匹配树拥有的高性能
良好的扩展接口, 样例和文档助急速理解扩展使用

Sureness的低配置,易扩展,不耦合其他框架,希望能对系统多场景快速安全的保护

🔍 对比
~SurenessShiroSpring Security
多框架支持支持需改动支持不支持
REST API支持需改动支持支持
Websocket支持不支持不支持
过滤链匹配优化的字典匹配树ant匹配ant匹配
注解支持支持支持支持
Servlet支持支持支持
JAX-RS支持不支持不支持
权限动态修改支持需改动支持需改动支持
性能速度较快较慢较慢
学习曲线简单简单陡峭
📈 基准性能测试

benchmark

基准测试显示Sureness对比无权限框架应用损耗0.026ms性能,Shiro损耗0.088ms,Spring Security损耗0.116ms, 相比之下Sureness性能(参考TPS损耗)是Shiro的3倍,Spring Security的4倍
性能差距会随着api匹配链的增加而进一步拉大
详见基准测试

✌ 框架支持样例