java專案Shiro SpringSecurity Sa Token如何選擇?

時間 2021-05-30 04:29:36

1樓:檸檬班

都主要是做身份驗證和鑑權,有很多相同的地方,側重點不同:

1、Shiro:相對簡單,一般單個專案需要身份驗證和鑑權應用起來比較快速,入手也比較快;

2、Spring Security:基於Spring體系,功能更強大,也更複雜,但網上各種使用資料也較多;對於分布式的多服務需要統一身份驗證與鑑權,可以考慮Spring Security+OAuth2

3、Sa-Token沒有使用過,看了一下官網介紹,是乙個2023年才開始第一版的新產品,學習可以,用在生產環境還是要多考慮一下

2樓:wmgx

在乙個小型專案裡面用過sa-token,感覺還是比較方便的,包括登入,登出,許可權驗證。照著文件基本一會就可以配置好,提供的redis的整合很方便,引入依賴就行。

3樓:Kurome

我選擇自己擼乙個

step1 實現基礎的登入

寫乙個生成json web token的介面和乙個處理它的過濾器就完事了

這可能要創使用者表什麼的,但是你選擇框架,也得設計!

step2 實現選單級許可權

如果是最簡單的一級許可權,那麼寫乙個註解,用於標記介面需要什麼許可權,然後在看看spring文件,怎麼掃瞄下介面下的註解,取出許可權比較下就行了

許可權的儲存可以選擇role-base的方案,jwt生成時,放上roleid,在處理jwt時,將這個id換成對應許可權,為了更好的效能,你可以把角色和許可權的對應關係快取起來

如果想多級許可權,方案很多,但是都是基於一級許可權擴充套件的

到這裡就結束了

乙個輪子的設計方案,比那些框架的文件都簡單,你還有什麼理由用他們呢 [狗頭表情]

java專案包名如果由多個單詞組成,怎麼命名?

黃大仙 包名不應該用來表達模組完整的意思,包名應該僅用作與同包下的其他包做區分。遇到適當的時候應該向範圍更大的語義上取名,如已存在乙個包代表 51 100 的範圍,現在你想新建乙個包 1 30,如果不存在 31 50,應當向上取包名成為 1 50 如果存在 31 50,應當取包名為 1 50.1 3...

php轉java,選擇java8還是java11,springboot哪個版本推薦?

朱一旦的枯燥生活 jdk建議8,其實11也行,反正長期更新版都行吧,只是springboot要看你的最新的cloud對應哪個boot版本,當然建議boot用最新,畢竟這玩意更新快 Cocoon 現在面試是什麼內容?都是最新JDK8最新特性。將來面的方向只會更新。其次是,最新版本,你將有可能是第一批踩...

專案,專案,什麼是專案?

光環國際PMP 專案的定義 專案是為創造獨特的產品 服務或成果二進行的臨時性廣州。專案大致可分為以下三類 1 研發專案 目的是開發新產品,如研發手機 汽車 遊戲等 2 交付專案 為滿足客戶需求而提供的服務,如建築施工 軟體定製開發 廣告策劃等 3 變革專案 企業流程 制度 組織架構等的改變,如資訊化...