<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,無框架依賴,能夠動態修改權限,多認證策略,更快速度,易用易擴展的認證鑑權框架。java
sureness
是咱們在深度使用權限框架apache shiro
以後,吸收其一些優勢全新設計開發的一個認證鑑權框架
面向restful api
的認證鑑權,基於rbac
(用戶-角色-資源)主要關注於對restful api
的安全保護
無特定框架依賴(本質就是過濾器處攔截判斷,已有springboot,quarkus,javalin,ktor
等集成樣例)
支持動態修改權限配置(動態修改配置每一個rest api
誰有權訪問)
支持websocket
,主流http
容器servlet
和jax-rs
支持多種認證策略,jwt, basic auth, digest auth
... 可擴展自定義支持的認證方式
基於改進的字典匹配樹擁有的高性能
良好的擴展接口, 樣例和文檔 git
sureness
的低配置,易擴展,不耦合其餘框架,但願能幫助開發者對本身的項目多場景快速安全的進行保護github
~ | 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匹配鏈的增長而進一步拉大
詳見基準測試web
GITHUB倉庫地址
GITEE倉庫地址spring