sureness 正式 GA 啦,比 shiro,spring security 快几倍,面向 rest api 的安全框架 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
tomsun28
V2EX    Java

sureness 正式 GA 啦,比 shiro,spring security 快几倍,面向 rest api 的安全框架

  •  
  •   tomsun28
    tomsun28 2021-03-08 13:11:43 +08:00 2450 次点击
    这是一个创建于 1766 天前的主题,其中的信息可能已经有所发展或是发生改变。

    大家周一好,经过 22 个版本,2 年多的迭代,很高兴激动宣布面向 rest api 的安全框架-sureness,正式 GA 啦。

    背景

    在主流的前后端分离架构中,如何通过有效快速的认证鉴权来保护后端提供的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的低配置,易扩展,不耦合其他框架,希望能帮助开发者对自己的项目多场景快速安全的进行保护

    框架对比
    ~ sureness shiro spring 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 仓库地址

    4 条回复    2021-03-23 11:05:31 +08:00
    bthulu
        1
    bthulu  
       2021-03-08 19:34:54 +08:00
    如果某个 restful api 所有人都可以访问, 但是不同的人只能拿到自己具有权限的数据.
    来个简单的示例: mysql 的 show databases, root 账号可以看到所有库, 其余账号只能看到被授权的库.
    对于这种, sureness 是怎么处理的呢?
    tomsun28
        2
    tomsun28  
    OP
       2021-03-08 19:56:05 +08:00
    @bthulu 你说的这个属于数据权限了,一般情况下数据权限我们是写代码或者 sql (类似 where user=who)来过滤,这里的 who 等用户信息可以通过 sureness 认证鉴权后拿到。
    sun5244725
        3
    sun5244725  
       2021-03-14 22:11:45 +08:00
    看好。支持一下
    tomsun28
        4
    tomsun28  
    OP
       2021-03-23 11:05:31 +08:00
    @sun5244725 thanks
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     952 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 30ms UTC 22:23 PVG 06:23 LAX 14:23 JFK 17:23
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86