最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

SpringBoot+Vue前后端分離,使用SpringSecurity完美處理權(quán)限問(wèn)題的解決方法

 更新時(shí)間:2018年01月09日 10:45:18   作者:江南一點(diǎn)雨  
這篇文章主要介紹了SpringBoot+Vue前后端分離,使用SpringSecurity完美處理權(quán)限問(wèn)題,需要的朋友可以參考下

當(dāng)前后端分離時(shí),權(quán)限問(wèn)題的處理也和我們傳統(tǒng)的處理方式有一點(diǎn)差異。筆者前幾天剛好在負(fù)責(zé)一個(gè)項(xiàng)目的權(quán)限管理模塊,現(xiàn)在權(quán)限管理模塊已經(jīng)做完了,我想通過(guò)5-6篇文章,來(lái)介紹一下項(xiàng)目中遇到的問(wèn)題以及我的解決方案,希望這個(gè)系列能夠給小伙伴一些幫助。本系列文章并不是手把手的教程,主要介紹了核心思路并講解了核心代碼,完整的代碼小伙伴們可以在GitHub上star并clone下來(lái)研究。另外,原本計(jì)劃把項(xiàng)目跑起來(lái)放到網(wǎng)上供小伙伴們查看,但是之前買服務(wù)器為了省錢(qián),內(nèi)存只有512M,兩個(gè)應(yīng)用跑不起來(lái)(已經(jīng)有一個(gè)V部落開(kāi)源項(xiàng)目 在運(yùn)行),因此小伙伴們只能將就看一下下面的截圖了,文末有部署教程,部署到本地也可以查看完整效果。

本文我們先不聊具體實(shí)現(xiàn),我先來(lái)介紹一下我這個(gè)權(quán)限管理模塊的一個(gè)整體架構(gòu),以及最終呈現(xiàn)出來(lái)的效果。

數(shù)據(jù)庫(kù)設(shè)計(jì)

權(quán)限數(shù)據(jù)庫(kù)主要包含了五張表,分別是資源表、角色表、用戶表、資源角色表、用戶角色表,數(shù)據(jù)庫(kù)關(guān)系模型如下:

 

關(guān)于這個(gè)表,我說(shuō)如下幾點(diǎn):

1.hr表是用戶表,存放了用戶的基本信息。

2.role是角色表,name字段表示角色的英文名稱,按照SpringSecurity的規(guī)范,將以 ROLE_ 開(kāi)始,nameZh字段表示角色的中文名稱。

3.menu表是一個(gè)資源表,該表涉及到的字段有點(diǎn)多,由于我的前端采用了Vue來(lái)做,因此當(dāng)用戶登錄成功之后,系統(tǒng)將根據(jù)用戶的角色動(dòng)態(tài)加載需要的模塊,所有模塊的信息將保存在menu表中,menu表中的path、component、iconCls、keepAlive、requireAuth等字段都是Vue-Router中需要的字段,也就是說(shuō)menu中的數(shù)據(jù)到時(shí)候會(huì)以json的形式返回給前端,再由vue動(dòng)態(tài)更新router,menu中還有一個(gè)字段url,表示一個(gè)url pattern,即路徑匹配規(guī)則,假設(shè)有一個(gè)路徑匹配規(guī)則為 /admin/** ,那么當(dāng)用戶在客戶端發(fā)起一個(gè) /admin/user 的請(qǐng)求,將被 /admin/** 攔截到,系統(tǒng)再去查看這個(gè)規(guī)則對(duì)應(yīng)的角色是哪些,然后再去查看該用戶是否具備相應(yīng)的角色,進(jìn)而判斷該請(qǐng)求是否合法。

下圖分別是用戶表、角色表以及資源表中的部分?jǐn)?shù)據(jù)(數(shù)據(jù)庫(kù)腳本可以在文末的項(xiàng)目地址中下載,位置 resources/vhr.sql ):

整體效果

首先,不同的用戶在登錄成功之后,根據(jù)不同的角色,會(huì)看到不同的系統(tǒng)菜單,完整菜單如下:

 

不同用戶登錄上來(lái)之后,可能看到的會(huì)有差異,如下:

 

每個(gè)用戶的角色是由系統(tǒng)管理員進(jìn)行分配的,系統(tǒng)管理員給用戶分配角色的頁(yè)面如下:

 

系統(tǒng)管理員也可以管理不同角色可以操作的資源,頁(yè)面如下:

 

其他的刪除、搜索等一些瑣碎的功能我這里就不再一一介紹了。

項(xiàng)目地址

由于商業(yè)協(xié)議,原本的項(xiàng)目不能共享給各位小伙伴,因此我專門(mén)做了一個(gè)開(kāi)源項(xiàng)目,這個(gè)項(xiàng)目的功能整體來(lái)說(shuō)比較多,但是考慮到這個(gè)系列的文章主要是向大家介紹權(quán)限管理模塊,因此其他模塊都被我暫時(shí)閹割掉了,不過(guò)小伙伴們可以放心,權(quán)限管理模塊的代碼一行都沒(méi)有刪除,涉及到權(quán)限管理的代碼和數(shù)據(jù)都是完整的,可以直接運(yùn)行的。小伙伴將以管理員的身份登錄到后臺(tái)系統(tǒng),登錄成功之后,依次點(diǎn)擊 系統(tǒng)管理->基礎(chǔ)信息設(shè)置->權(quán)限組 ,即可配置不同角色可以操作的資源;然后依次點(diǎn)擊 系統(tǒng)管理->操作員管理 ,即可管理每一位操作員的角色。

項(xiàng)目地址: https://github.com/lenve/vhr

快速部署

1.clone項(xiàng)目到本地 git@github.com:lenve/vhr.git

2.數(shù)據(jù)庫(kù)腳本放在hrserver項(xiàng)目的resources目錄下,在MySQL中執(zhí)行數(shù)據(jù)庫(kù)腳本

3.數(shù)據(jù)庫(kù)配置在hrserver項(xiàng)目的resources目錄下的application.properties文件中

4.在IntelliJ IDEA中運(yùn)行hrserver項(xiàng)目

OK,至此,服務(wù)端就啟動(dòng)成功了,此時(shí)我們直接在地址欄輸入 http://localhost:8082/index.html 即可訪問(wèn)我們的項(xiàng)目,如果要做二次開(kāi)發(fā),請(qǐng)繼續(xù)看第五、六步。

5.進(jìn)入到vuehr目錄中,在命令行依次輸入如下命令:

# 安裝依賴
npm install
# 在 localhost:8080 啟動(dòng)項(xiàng)目
npm run dev

由于我在vuehr項(xiàng)目中已經(jīng)配置了端口轉(zhuǎn)發(fā),將數(shù)據(jù)轉(zhuǎn)發(fā)到SpringBoot上,因此項(xiàng)目啟動(dòng)之后,在瀏覽器中輸入 http://localhost:8080 就可以訪問(wèn)我們的前端項(xiàng)目了,所有的請(qǐng)求通過(guò)端口轉(zhuǎn)發(fā)將數(shù)據(jù)傳到SpringBoot中(注意此時(shí)不要關(guān)閉SpringBoot項(xiàng)目)。

6.最后可以用WebStorm等工具打開(kāi)vuehr項(xiàng)目,繼續(xù)開(kāi)發(fā),開(kāi)發(fā)完成后,當(dāng)項(xiàng)目要上線時(shí),依然進(jìn)入到vuehr目錄,然后執(zhí)行如下命令:

npm run build

該命令執(zhí)行成功之后,vuehr目錄下生成一個(gè)dist文件夾,將該文件夾中的兩個(gè)文件static和index.html拷貝到SpringBoot項(xiàng)目中resources/static/目錄下,然后就可以像第4步那樣直接訪問(wèn)了。

步驟5中需要大家對(duì)NodeJS、NPM等有一定的使用經(jīng)驗(yàn),不熟悉的小伙伴可以先自行搜索學(xué)習(xí)下,推薦 Vue官方教程 。

注意事項(xiàng)

再次強(qiáng)調(diào),這只是一個(gè)權(quán)限管理功能模塊,運(yùn)行后只有權(quán)限管理功能是完整的。小伙伴們?cè)诒镜夭渴鸪晒χ?,可以修改每一個(gè)用戶的角色以及每一個(gè)角色可以操作的資源,修改成功之后,注銷登錄,再以被修改的用戶身份登錄,即可看到菜單變化。

總結(jié)

以上所述是小編給大家介紹的SpringBoot+Vue前后端分離,使用SpringSecurity完美處理權(quán)限問(wèn)題的解決方法,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!

相關(guān)文章

  • vue3實(shí)現(xiàn)旋轉(zhuǎn)圖片驗(yàn)證

    vue3實(shí)現(xiàn)旋轉(zhuǎn)圖片驗(yàn)證

    這篇文章主要為大家詳細(xì)介紹了vue3實(shí)現(xiàn)旋轉(zhuǎn)圖片驗(yàn)證,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-04-04
  • vue實(shí)現(xiàn)excel文件的導(dǎo)入和讀取完整步驟

    vue實(shí)現(xiàn)excel文件的導(dǎo)入和讀取完整步驟

    Vue的數(shù)據(jù)綁定功能非常強(qiáng)大,很適合用來(lái)讀取Excel內(nèi)容,這篇文章主要給大家介紹了關(guān)于vue實(shí)現(xiàn)excel文件的導(dǎo)入和讀取的相關(guān)資料,文中通過(guò)代碼示例介紹的非常詳細(xì),需要的朋友可以參考下
    2023-10-10
  • vue添加錨點(diǎn),實(shí)現(xiàn)滾動(dòng)頁(yè)面時(shí)錨點(diǎn)添加相應(yīng)的class操作

    vue添加錨點(diǎn),實(shí)現(xiàn)滾動(dòng)頁(yè)面時(shí)錨點(diǎn)添加相應(yīng)的class操作

    這篇文章主要介紹了vue添加錨點(diǎn),實(shí)現(xiàn)滾動(dòng)頁(yè)面時(shí)錨點(diǎn)添加相應(yīng)的class操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-08-08
  • vue傳值的編碼和解碼方式

    vue傳值的編碼和解碼方式

    這篇文章主要介紹了vue傳值的編碼和解碼方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • 基于vue實(shí)現(xiàn)頁(yè)面滾動(dòng)加載的示例詳解

    基于vue實(shí)現(xiàn)頁(yè)面滾動(dòng)加載的示例詳解

    頁(yè)面內(nèi)容太多會(huì)導(dǎo)致加載速度過(guò)慢,這時(shí)可考慮使用滾動(dòng)加載即還沒(méi)有出現(xiàn)在可視范圍內(nèi)的內(nèi)容塊先不加載,出現(xiàn)后再加載,所以本文給大家介紹了基于vue實(shí)現(xiàn)頁(yè)面滾動(dòng)加載的示例,需要的朋友可以參考下
    2024-01-01
  • 進(jìn)入Hooks時(shí)代寫(xiě)出高質(zhì)量react及vue組件詳解

    進(jìn)入Hooks時(shí)代寫(xiě)出高質(zhì)量react及vue組件詳解

    這篇文章主要介紹了Hooks時(shí)代中如何寫(xiě)出高質(zhì)量的react和vue組件的示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-07-07
  • 深入Vue-Router路由嵌套理解

    深入Vue-Router路由嵌套理解

    這篇文章主要介紹了深入Vue-Router路由嵌套理解,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-08-08
  • 利用WebStorm創(chuàng)建一個(gè)Vue項(xiàng)目的完整步驟

    利用WebStorm創(chuàng)建一個(gè)Vue項(xiàng)目的完整步驟

    WebStorm是一個(gè)非常適合學(xué)習(xí)和開(kāi)發(fā)Vue項(xiàng)目的集成開(kāi)發(fā)環(huán)境,下面這篇文章主要給大家介紹了關(guān)于利用WebStorm創(chuàng)建一個(gè)Vue項(xiàng)目的完整步驟,文中通過(guò)圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2024-06-06
  • 如何使用el-cascader組件寫(xiě)下拉級(jí)聯(lián)多選及全選功能

    如何使用el-cascader組件寫(xiě)下拉級(jí)聯(lián)多選及全選功能

    這篇文章主要介紹了如何使用el-cascader組件寫(xiě)下拉級(jí)聯(lián)多選及全選功能,因?yàn)槭怯腥x的功能,所以不能直接使用el-cascader組件,?而是選擇使用el-select組件,?在此組件內(nèi)部使用el-cascader-panel級(jí)聯(lián)面板,感興趣的朋友跟隨小編一起看看吧
    2024-03-03
  • Vue將props值實(shí)時(shí)傳遞 并可修改的操作

    Vue將props值實(shí)時(shí)傳遞 并可修改的操作

    這篇文章主要介紹了Vue將props值實(shí)時(shí)傳遞 并可修改的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-08-08

最新評(píng)論

龙州县| 宕昌县| 土默特左旗| 甘孜县| 光山县| 乐至县| 治多县| 宁海县| 马边| 临邑县| 穆棱市| 泌阳县| 额敏县| 罗源县| 凌源市| 固阳县| 顺昌县| 抚松县| 铁岭县| 镇宁| 冕宁县| 松桃| 湄潭县| 晋江市| 平陆县| 大港区| 安国市| 娄底市| 招远市| 寿阳县| 团风县| 商水县| 贡觉县| 邢台市| 南乐县| 麦盖提县| 云浮市| 岗巴县| 古浪县| 桃源县| 罗田县|