久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

SpringBoot+JWT+Shiro+MybatisPlus如何實現(xiàn)Restful快速開發(fā)后端腳手架

175次閱讀
沒有評論

共計 1612 個字符,預(yù)計需要花費 5 分鐘才能閱讀完成。

行業(yè)資訊    
服務(wù)器    
云計算    
SpringBoot+JWT+Shiro+MybatisPlus 如何實現(xiàn) Restful 快速開發(fā)后端腳手架

SpringBoot+JWT+Shiro+MybatisPlus 如何實現(xiàn) Restful 快速開發(fā)后端腳手架,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面丸趣 TV 小編將為大家詳細(xì)講解,有這方面需求的人可以來學(xué)習(xí)下,希望你能有所收獲。

一、背景

前后端分離已經(jīng)成為互聯(lián)網(wǎng)項目開發(fā)標(biāo)準(zhǔn),它會為以后的大型分布式架構(gòu)打下基礎(chǔ)。SpringBoot 使編碼配置部署都變得簡單,越來越多的互聯(lián)網(wǎng)公司已經(jīng)選擇 SpringBoot 作為微服務(wù)的入門級微框架。

Mybatis-Plus 是一個 Mybatis 的增強(qiáng)工具,有代碼生成器,并且提供了類似 hibernate 的單表 CRUD 操作,又保留了 mybatis 的特性支持定制化 SQL。

Apache Shiro 是一款強(qiáng)大易用的 Java 安全框架,Java 官方推薦使用 Shiro,它比 Spring Security 更簡單易用,Spring 自己的系列 Spring side4 也把權(quán)限擴(kuò)建換成 Shiro 了。

現(xiàn)在 API 越來越流行,如何安全保護(hù)這些 API?JSON Web Tokens(JWT) 能提供基于 JSON 格式的安全認(rèn)證。JWT 可以跨不同語言,自帶身份信息,并且非常容易傳遞。

二、項目特性

1. 自定義 @Log 注解自動記錄日志到數(shù)據(jù)庫。

2. 自定義 @Pass 注解接口不用進(jìn)行認(rèn)證身份。

3. 使用 JSONObject 統(tǒng)一獲取 body 請求參數(shù),減少實體類的數(shù)量。完成自定義 @ValidationParam 注解驗證請求參數(shù)是否為空。

4. 使用 bcrypt 算法加密密碼,著名代碼托管網(wǎng)站 Github 和美國軍方防火墻同樣采用此算法,靠 bcrypt 算法會成功保住密碼強(qiáng)度不算很高的大部分賬戶。

5. 搭配 Shiro 注解配置權(quán)限,高度靈活,提供按鈕級別的權(quán)限控制,后端接口只驗證權(quán)限,不看角色。用自定義 @CurrentUser 注解獲取當(dāng)前登錄用戶,Controlle 層統(tǒng)一異常處理:

6. 用 SpringAOP 切面編程進(jìn)行聲明式事務(wù),過濾請求參數(shù),防止 XSS 攻擊。

7. 使用 POST 請求登錄返回 token 和權(quán)限信息 (service 層增刪改方法命名規(guī)范會自動加上事物),保證請求無狀態(tài),返回實體如果屬性為空不顯示。

三、程序邏輯

1. 填寫用戶名密碼用 POST 請求訪問 /login 接口,返回 token 令牌等信息,失敗則直接跳轉(zhuǎn) 401 錯誤頁面。

2. 在之后需要驗證身份的請求的 Headers 中添加 Authorization 和登錄時返回的 token 令牌。

3. 服務(wù)端進(jìn)行 token 認(rèn)證,失敗跳轉(zhuǎn) 401 頁面。

4. 用 JWT 做認(rèn)證(登錄),Shiro 做授權(quán)。

四、運行項目

項目結(jié)構(gòu):

通過 git 下載源碼,本項目基于 JDK1.8

采用 Maven 項目管理,模塊化,導(dǎo)入 IDE 時直接選定 liugh-parent 的 pom 導(dǎo)入

創(chuàng)建數(shù)據(jù)庫 liugh,數(shù)據(jù)庫編碼為 UTF-8,執(zhí)行 liugh.sql 文件,初始化數(shù)據(jù)

修改 application-dev.properties,更新 MySQL 賬號和密碼

Eclipse、IDEA 運行 SpringbootApplication.java,則可啟動項目?;蛟?liugh-parent 目錄下運行命令 mvn clean package,然后在 liugh-web/target 目錄下運行 java -jar liugh-web.jar 命令

啟動一個 redis 服務(wù)

訪問登錄接口:localhost:8081/api/login

賬號密碼:13888888888/123456

獲取 token 訪問其他接口

注意!!!!! 訪問的接口 url 統(tǒng)一會加上 /api/v1; 編譯器請安裝 lombok 插件, 不然會報紅

運行截圖:

看完上述內(nèi)容是否對您有幫助呢?如果還想對相關(guān)知識有進(jìn)一步的了解或閱讀更多相關(guān)文章,請關(guān)注丸趣 TV 行業(yè)資訊頻道,感謝您對丸趣 TV 的支持。

正文完
 
丸趣
版權(quán)聲明:本站原創(chuàng)文章,由 丸趣 2023-08-17發(fā)表,共計1612字。
轉(zhuǎn)載說明:除特殊說明外本站除技術(shù)相關(guān)以外文章皆由網(wǎng)絡(luò)搜集發(fā)布,轉(zhuǎn)載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 邵武市| 达日县| 元江| 聊城市| 九台市| 南平市| 淳安县| 兰溪市| 崇礼县| 花莲县| 南和县| 武清区| 定西市| 吴川市| 绍兴县| 兴宁市| 澳门| 林州市| 宜春市| 沧源| 德清县| 华安县| 柳江县| 鹿邑县| 石泉县| 昌平区| 公主岭市| 海阳市| 玛曲县| 中宁县| 尉犁县| 星座| 甘孜| 温宿县| 腾冲县| 什邡市| 南郑县| 芮城县| 西吉县| 商丘市| 清徐县|