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

📅 2026/7/8 1:59:59
Dromara Sureness:把 REST API 鉴权这事做薄做快
文章目录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/bookget再按 RBAC 把角色挂到资源上。匹配走的是字典匹配树不是常见的 ant match。2、 性能数据仓库里给了一份 benchmark三款框架对比无框架裸跑的耗时无框架0ms 基线sureness损失 0.026msShiro损失 0.088msSpring 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 工程加坐标dependencygroupIdcom.usthe.sureness/groupIdartifactIdsureness-core/artifactIdversion1.1.0/version/dependencyGradle 写法compile group: com.usthe.sureness, name: sureness-core, version: 1.1.0默认配置DefaultSurenessConfig走sureness.yml当数据源JWT、Basic、Digest 三种认证开箱可用BeanpublicDefaultSurenessConfigsurenessConfig(){returnnewDefaultSurenessConfig();}账号和权限数据可以从文本、关系库、非关系库、注解里来。框架提供两个接口SurenessAccountProvider喂账号PathTreeProvider喂资源角色映射。想从数据库读就实现这两个接口余下交给内核。拦截器拿到请求后调一行做认证SubjectSumsubjectSurenessSecurityManager.getInstance().checkIn(servletRequest);成功返回SubjectSum失败抛异常。异常分得很细账号禁用、凭证过期、权限不足各有对应类型业务侧 catch 后自己决定返回什么响应。5、 框架适配样例仓库里给了一长串集成样例几乎覆盖主流后端框架Spring Boot 配置文件方案 sample-bootstrapSpring Boot 数据库方案 sample-tomQuarkus、Javalin、Ktor、Micronaut、Solon、JFinalSpring 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 值得拿来试一把。