Springboot+Shiro優雅實戰•計劃概述_1
原創
在编攻城狮
2020-07-04 03:51
一、目標
- 使用springboot搭建一個微服務基本框架;
- 使用自定義加解密算法對所有賬號密碼進行加密存儲(包括數據庫賬號密碼、用戶密碼等);
- 使用shiro作爲rbac權限集成框架,同時支持賬號密碼登錄和微信認證登錄,且優雅地使用多FormAuthenticationFilter、多Realm分別進行認證;
- 使用自定義操作日誌框架,方便日後進一步擴展;
- 給出所有源碼,以感謝所有熱情分享技術的網友,包括好學的你;
二、步驟
- 實現自定義加解密算法,包括對稱加密算法AES256和非對稱加密算法RSA1024;
- 搭建Springboot框架,使用postgreSQL數據庫,集成mybatis/c3p0/fastjson/log4j2,能夠正常啓動和加載;
- 自定義操作日誌框架,支持通過註解和調用服務的方式記錄操作日誌到單獨的存儲介質;
- 集成jasypt框架,能夠使用自定義AES256加密的數據庫密碼連接數據庫,能夠正常啓動和加載;
- 集成自定義的一套rbac表結構,登錄後,後臺能夠通過RSA1024加密的密碼比較,完成認證過程;
- 集成shiro框架,登錄認證改寫至shiro框架,通過單FormAuthenticationFilter,單Realm完成登錄過程;
- 通過shiro完成會話(緩存)管理和權限管理;
- 支持微信小程序Token認證機制,實現多FormAuthenticationFilter,多Realm的認證過程,以此經驗,可任意擴展其它認證方式;
三、計劃
- 以上所述目標均已實現。計劃按照以上步驟,每步一篇總結的方式呈現給大家;
- 每篇總結會在一週內完成;
- 每篇總結的源碼對應一個github maven工程;
四、總結
- springboot/shiro等官方文檔寫得比較簡略,分析源碼的收穫會比較大,但我們通常只會用到框架的其中一小部分功能,感覺需要用到的時候再去學效果會更好;
- 網上給出的資料部分有疏漏的地方,部分代碼給得不全,對框架產生了不少誤解;
- 結合各路大神,總算完成了預期的目標,但是不想大家再走很多誤區,所以在經過實際驗證後,決定開源,並按照由淺入深的思路總結給大家,希望對你有幫助;