<dependency>
<groupId>com.usthe.sureness</groupId>
<artifactId>sureness-core</artifactId>
<version>1.0.2</version>
</dependency>
在主流的前后端分离架构中,如何通过有效快速的认证鉴权来保护后端提供的restful api
变得尤为重要。对现存框架,不原生支持rest
的apache shiro
,
还是深度绑定spring
,较慢性能,学习曲线陡峭的spring security
,或多或少都不是我们的理想型。
于是乎sureness
诞生了,我们希望能解决这些,提供一个面向restful api,无框架依赖,可以动态修改权限,多认证策略,更快速度,易用易扩展的认证鉴权框架。
sureness
是我们在深度使用权限框架apache shiro
之后,吸取其一些优点全新设计开发的一个认证鉴权框架
面向restful api
的认证鉴权,基于rbac
(用户-角色-资源)主要关注于对restful api
的安全保护
无特定框架依赖(本质就是过滤器处拦截判断,已有springboot,quarkus,javalin,ktor
等集成样例)
支持动态修改权限配置(动态修改配置每个rest api
谁有权访问)
支持websocket
,主流http
容器servlet
和jax-rs
支持多种认证策略,jwt, basic auth, digest auth
... 可扩展自定义支持的认证方式
基于改进的字典匹配树拥有的高性能
良好的扩展接口, 样例和文档
sureness
的低配置,易扩展,不耦合其他框架,希望能帮助开发者对自己的项目多场景快速安全的进行保护
~ | sureness | shiro | spring security |
---|---|---|---|
多框架支持 | 支持 | 需改动支持 | 不支持 |
restful api | 支持 | 需改动支持 | 支持 |
websocket | 支持 | 不支持 | 不支持 |
过滤链匹配 | 优化的字典匹配树 | ant 匹配 | ant 匹配 |
注解支持 | 支持 | 支持 | 支持 |
servlet | 支持 | 支持 | 支持 |
jax-rs | 支持 | 不支持 | 不支持 |
权限动态修改 | 支持 | 需改动支持 | 需改动支持 |
性能速度 | 较快 | 较慢 | 较慢 |
学习曲线 | 简单 | 简单 | 陡峭 |
基准测试显示 sureness 对比无权限框架应用损耗 0.026ms 性能,shiro 损耗 0.088ms,spring security 损耗 0.116ms,
相比之下 sureness 基本不消耗性能,且性能(参考 TPS 损耗)是 shiro 的 3 倍,spring security 的 4 倍
性能差距会随着 api 匹配链的增加而进一步拉大
详见基准测试
sureness 集成 springboot 样例(配置文件方案) sample-bootstrap
sureness 集成 springboot 样例(数据库方案) sample-tom
sureness 集成 quarkus 样例 sample-quarkus
sureness 集成 javalin 样例 sample-javalin
sureness 集成 ktor 样例 sample-ktor
sureness 集成 spring webflux 样例 sample-spring-webflux
sureness 使用 session 样例 sureness-session
sureness 分布式缓存 session 样例 sureness-redis-session
more samples todo
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.