新增特性

  • 支持seesion认证鉴权 #86
  • 添加seesion使用样例 #87
  • 添加分布式缓存session使用样例 #88
  • 去除防sql注入中的 (--)字符串正则匹配,防止其误识别jwt的问题 #85

BugFix

  • Fix the problem that authentication is still needed when the resource… #84
  • fix api can be accessed by any role when accessRole not config #83

使用

<dependency>
    <groupId>com.usthe.sureness</groupId>
    <artifactId>sureness-core</artifactId>
    <version>1.0.2</version>
</dependency>

📫 背景

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

🎡 介绍

sureness 是我们在深度使用权限框架 apache shiro 之后,吸取其一些优点全新设计开发的一个认证鉴权框架
面向 restful api 的认证鉴权,基于 rbac (用户-角色-资源)主要关注于对 restful api 的安全保护
无特定框架依赖(本质就是过滤器处拦截判断,已有springboot,quarkus,javalin,ktor等集成样例)
支持动态修改权限配置(动态修改配置每个rest api谁有权访问)
支持 websocket ,主流http容器 servletjax-rs
支持多种认证策略, jwt, basic auth, digest auth ... 可扩展自定义支持的认证方式
基于改进的字典匹配树拥有的高性能
良好的扩展接口, 样例和文档

sureness的低配置,易扩展,不耦合其他框架,希望能帮助开发者对自己的项目多场景快速安全的进行保护

🔍 框架对比
~surenessshirospring security
多框架支持支持需改动支持不支持
restful 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匹配链的增加而进一步拉大
详见基准测试

✌ 框架支持样例
项目仓库地址,欢迎使用,开源不易,觉得不错请大佬们star下给予鼓励,弯腰感谢。

GITHUB仓库地址
GITEE仓库地址


Apache_HertzBeat
227 声望51 粉丝

嗨 ~~