詳解springboot shiro jwt實(shí)現(xiàn)權(quán)限管理
springboot + shiro + jwt (詳情解析+代碼實(shí)現(xiàn))加密接口 設(shè)置權(quán)限
首先需要把shiro的幾個(gè)配置類給下載好(我已經(jīng)把需要的配置類給放到了github和網(wǎng)盤之中)
先講完各個(gè)配置類的作用,后面講具體流程
ShiroConfig.java 類主要是設(shè)置了過(guò)濾器 和shiro自己的session,假如這個(gè)類沒有放行就只有token才能訪問后端接口
UserRealm.java 類主要是檢測(cè)用戶權(quán)限和授予權(quán)限,對(duì)用戶名的驗(yàn)證
JWTFilter.java 類主要是防止別人訪問你的接口,假如有人想直接訪問你的接口首先檢查你的token有沒有在到ShiroConfig中看有沒有放行假如兩項(xiàng)都沒有就無(wú)權(quán)訪問后端的接口
MDSUtils.java 加密前端傳入的密碼,以及設(shè)置加密方式
JWTUtils.java 生成token,和設(shè)置過(guò)期時(shí)間
好了,這就是token幾個(gè)主要的配置類
下面是實(shí)現(xiàn)的整個(gè)流程
1.首先前端登錄訪問后端登錄接口,要給登錄的請(qǐng)求地址放行(在沒有登錄的情況下是沒有token的,如果沒有放行就訪問不到接口
這是給需要訪問的路徑放行
2.放行之后進(jìn)入controller 傳入用戶名和密碼到service中的login(注:(login())方法在沒有在網(wǎng)盤中需要自己寫)方法中 然后拿傳入的賬號(hào)(注:只有賬號(hào))在數(shù)據(jù)庫(kù)中進(jìn)行查詢假如有此賬號(hào)需要在數(shù)據(jù)庫(kù)中獲取用戶的(鹽:此鹽非彼鹽,這相當(dāng)于對(duì)數(shù)據(jù)加密的密鑰) 以及用戶的信息,如果沒有這個(gè)用戶則直接拋出錯(cuò)誤
3.拿到用戶的信息后,把密碼拿出來(lái)用用戶信息里面的鹽進(jìn)行加密,然后將連個(gè)密碼進(jìn)行比對(duì),比對(duì)成功就生成一個(gè)token攜帶這個(gè)用戶信息返回出去到前端
4.前端拿到token后登錄成功跳轉(zhuǎn)頁(yè)面并將token儲(chǔ)存到本地并將token放到請(qǐng)求頭中,前端登錄成功后需要到后端獲取數(shù)據(jù)每一次都需要攜帶這個(gè)token要不然就會(huì)被過(guò)濾器給攔掉
在axios中傳入token
請(qǐng)求頭中有了token就不需要配置過(guò)濾器可直接在realm類中進(jìn)行授權(quán)并對(duì)數(shù)據(jù)的查詢
最后 別忘記導(dǎo)入依賴
博主白天工作沒有時(shí)間回復(fù),晚上可做出回答
三天一期java技術(shù)
可幫忙找bug
可評(píng)論需要的技術(shù)可能下期會(huì)進(jìn)行講解
這是配置文件的位置
鏈接:https://pan.baidu.com/s/1k6MhGTOfskjRcQH_XppRcA
提取碼:gdb2
到此這篇關(guān)于詳解springboot shiro jwt實(shí)現(xiàn)權(quán)限管理的文章就介紹到這了,更多相關(guān)springboot shiro jwt 權(quán)限管理內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
springboot項(xiàng)目部署到寶塔的詳細(xì)圖文教程
網(wǎng)上關(guān)于寶塔運(yùn)行springBoot的東西說(shuō)有點(diǎn)迷糊,但是有一句話很重要,Spring boot項(xiàng)目只需要JDK環(huán)境即可部署成功,下面這篇文章主要給大家介紹了關(guān)于springboot項(xiàng)目部署到寶塔的詳細(xì)圖文教程,需要的朋友可以參考下2023-05-05Java基于循環(huán)遞歸回溯實(shí)現(xiàn)八皇后問題算法示例
這篇文章主要介紹了Java基于循環(huán)遞歸回溯實(shí)現(xiàn)八皇后問題算法,結(jié)合具體實(shí)例形式分析了java的遍歷、遞歸、回溯等算法實(shí)現(xiàn)八皇后問題的具體步驟與相關(guān)操作技巧,需要的朋友可以參考下2017-06-06Spring Boot和Kotlin的無(wú)縫整合與完美交融
這篇文章主要給大家介紹了關(guān)于Spring Boot和Kotlin的無(wú)縫整合與完美交融的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2018-06-06SpringMVC結(jié)合模板模式實(shí)現(xiàn)MyBatisPlus傳遞嵌套JSON數(shù)據(jù)
我們經(jīng)常會(huì)遇到需要傳遞對(duì)象的場(chǎng)景,有時(shí)候,我們需要將一個(gè)對(duì)象的數(shù)據(jù)傳遞給另一個(gè)對(duì)象進(jìn)行處理,但是又不希望直接暴露對(duì)象的內(nèi)部結(jié)構(gòu)和實(shí)現(xiàn)細(xì)節(jié),所以本文給大家介紹了SpringMVC結(jié)合模板模式實(shí)現(xiàn)MyBatisPlus傳遞嵌套JSON數(shù)據(jù),需要的朋友可以參考下2024-03-03java保證對(duì)象在內(nèi)存中唯一性的實(shí)現(xiàn)方法
這篇文章主要介紹了java如何保證對(duì)象在內(nèi)存中的唯一性,如果創(chuàng)建多個(gè)對(duì)象的話,可能會(huì)引發(fā)出各種各樣的問題,這時(shí),就需要我們保證這個(gè)對(duì)象在內(nèi)存中的唯一性,需要的朋友可以參考下2019-06-06IDEA插件Statistic統(tǒng)計(jì)代碼快速分辨爛項(xiàng)目
這篇文章主要為大家介紹了使用IDEA插件Statistic來(lái)統(tǒng)計(jì)項(xiàng)目代碼,幫助大家快速識(shí)別出爛項(xiàng)目,有需要的朋友可以借鑒參考下,希望能夠有所幫助2022-01-01手把手教你用Java給暗戀對(duì)象發(fā)送一份表白郵件
隨著我們學(xué)習(xí)java的深入,也漸漸發(fā)現(xiàn)了它的一些樂趣,比如發(fā)送郵件,下面這篇文章主要給大家介紹了關(guān)于如何利用Java給暗戀對(duì)象發(fā)送一份表白郵件的相關(guān)資料,需要的朋友可以參考下2021-11-11java實(shí)現(xiàn)查找PDF關(guān)鍵字所在頁(yè)碼及其坐標(biāo)
這篇文章主要介紹了java實(shí)現(xiàn)查找PDF關(guān)鍵字所在頁(yè)碼及其坐標(biāo)的方法,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-09-09