尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

Dromara Sureness:把 REST API 鉴权这事做薄做快

Dromara Sureness:把 REST API 鉴权这事做薄做快
📅 发布时间:2026/7/8 2:12:28

文章目录

  • Dromara Sureness:把 REST API 鉴权这事做薄做快
    • 1、 解决什么问题
    • 2、 性能数据
    • 3、 和老牌框架比一比
    • 4、 怎么接入
    • 5、 框架适配样例
    • 6、 谁适合用

Dromara Sureness:把 REST API 鉴权这事做薄做快

sureness 在 GitHub 上拿到 877 Star 了。

Dromara 开源了这个安全框架,只干一件事:保护 REST API。认证、鉴权、RBAC,塞进一个不挑框架的内核里,Spring Boot、Quarkus、Javalin、Ktor、Micronaut 都能接。

1、 解决什么问题

后端做接口鉴权,绕不开两个老选手:Shiro 和 Spring Security。Shiro 学起来轻,但 REST 和 WebSocket 得自己改造;Spring Security 功能全,但是和学习曲线一样陡,配置一不留意就锁死在 Spring 体系。

sureness 想填的空位很明确:REST 优先、框架无关、性能不拉、上手简单。它把请求 URI 加上 HTTP 方法当资源,比如/api/v2/book===get,再按 RBAC 把角色挂到资源上。匹配走的是字典匹配树,不是常见的 ant match。

2、 性能数据

仓库里给了一份 benchmark,三款框架对比无框架裸跑的耗时:

  • 无框架:0ms 基线
  • sureness:损失 0.026ms
  • Shiro:损失 0.088ms
  • Spring Security:损失 0.116ms

换成 TPS 数字,sureness 是 Shiro 的 3 倍、Spring Security 的 4 倍。API 匹配链加长后差距还会扩大。原因主要在那棵字典匹配树,路径和角色的查找复杂度不跟着路由数线性涨。

3、 和老牌框架比一比

仓库里直接放了一张对比表,挑几条关键的:

能力surenessShiroSpring Security
多框架支持原生支持需改造不支持
WebSocket支持不支持不支持
JAX-RS支持不支持不支持
路径匹配字典匹配树ant matchant match
动态权限支持需改造需改造
学习曲线简单简单陡

WebSocket 和 JAX-RS 这两块是 sureness 显得特别的地方。Shiro 和 Spring Security 在这两个容器上要么不支持要么绕弯,sureness 是 Servlet 和 JAX-RS 两边都吃。

4、 怎么接入

Maven 工程加坐标:

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

Gradle 写法:

compile group: 'com.usthe.sureness', name: 'sureness-core', version: '1.1.0'

默认配置DefaultSurenessConfig走sureness.yml当数据源,JWT、Basic、Digest 三种认证开箱可用:

@BeanpublicDefaultSurenessConfigsurenessConfig(){returnnewDefaultSurenessConfig();}

账号和权限数据可以从文本、关系库、非关系库、注解里来。框架提供两个接口:SurenessAccountProvider喂账号,PathTreeProvider喂资源角色映射。想从数据库读就实现这两个接口,余下交给内核。

拦截器拿到请求后调一行做认证:

SubjectSumsubject=SurenessSecurityManager.getInstance().checkIn(servletRequest);

成功返回SubjectSum,失败抛异常。异常分得很细:账号禁用、凭证过期、权限不足各有对应类型,业务侧 catch 后自己决定返回什么响应。

5、 框架适配样例

仓库里给了一长串集成样例,几乎覆盖主流后端框架:

  • Spring Boot 配置文件方案 sample-bootstrap
  • Spring Boot 数据库方案 sample-tom
  • Quarkus、Javalin、Ktor、Micronaut、Solon、JFinal
  • Spring Gateway、Zuul 网关
  • Session 方案和 Redis Session 缓存方案

样例代码量不大,拿来对照自己的工程结构最直观。

6、 谁适合用

在做微服务网关、需要统一鉴权层的团队。Spring Cloud Gateway 和 Zuul 都有现成样例,迁移成本主要是把账号数据灌进去。

被 Shiro 或 Spring Security 的复杂度卡住、想换一套 REST 优先方案的开发者。学习曲线那一栏标的是简单,文档和 demo 也跟得上。

需要支持 WebSocket 或 JAX-RS 容器的项目。这两块老框架不打算补,sureness 是少数能直接给出方案的选项。

更进一步定制可以走扩展点:自定义 Subject、自定义 SubjectCreator、自定义 Processor、自定义数据源。内核是 Apache 2.0 协议,商用没有负担。

877 Star 不算炸,但 dromara 旗下还挂着 HertzBeat、MaxKey 这些项目,整体是在企业运维和身份权限这条线上做深耕的开发者社区。如果接口鉴权是当前的瓶颈点,sureness 值得拿来试一把。

r 不算炸,但 dromara 旗下还挂着 HertzBeat、MaxKey 这些项目,整体是在企业运维和身份权限这条线上做深耕的开发者社区。如果接口鉴权是当前的瓶颈点,sureness 值得拿来试一把。

相关新闻

  • Linux 神器 tmux 超详细入门教程:会话持久化 + 多窗口管理一网打尽
  • React Loadable:给 React 应用做代码分割的老牌方案
  • PyTorch 2.0 静态量化实战:ResNet-18 模型大小压缩 75%,推理速度提升 3 倍

最新新闻

  • 计网-如何理解冲突域和广播域
  • AI Agent 会自己选 CDN 了:当网站访问者从 “人” 扩展到 “AI”,内容分发已升级
  • 2026重庆重罪辩护刑事律师服务场景适配分析
  • Memcached 1.6.44 发布:安全修复版本,解决多项问题!
  • Anthropic开源J-Lens:读出Claude“内心想法”,揭示其类似人类意识的结构
  • AI智能体大规模上岗倒计时!2026年这些岗位将遭“取代”,哪些人将迎来黄金时代?

日新闻

  • PROPKA 3深度解析:蛋白质pKa预测的实战指南与算法原理
  • 微信小程序 globalData 监听:基于 Object.defineProperty 的 3 种实现方案对比
  • MySQL 8.0 数据清洗实战:3类异常值识别与 UPDATE/DELETE 批量处理

周新闻

  • 基于YOLOv12的番茄成熟度智能检测系统开发
  • 终极RimWorld模组管理指南:用RimSort告别模组冲突烦恼
  • AI Agent框架开发:从理论到实践的完整指南

月新闻

  • 2026年6月公司网站搭建最新热门渠道测评:四大低成本/零代码平台对比+避坑
  • 【Linux】Linux arm 编译QT程序,出现expected “}“报错
  • 【MATLAB例程】四基站二维AOA定位与距离辅助增强对比仿真。基于角度观测和测距修正的固定目标平面定位精度分析

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号