Skip to content

Latest commit

 

History

History
 
 

cn

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

sureness

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的低配置,易扩展,不耦合其他框架,希望能对系统多场景快速安全的保护

🔍 对比
~ Sureness Shiro Spring 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匹配链的增加而进一步拉大
详见基准测试

✌ 框架支持样例