久久精品精选,精品九九视频,www久久只有这里有精品,亚洲熟女乱色综合一区
    分享

    SpringBoot+Vue前后端分離,使用SpringSecurity完美處理權(quán)限問題(一)

     Baruch 2018-01-31

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

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

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

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

    這里寫圖片描述

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

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

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

    3.menu表是一個(gè)資源表,該表涉及到的字段有點(diǎn)多,由于我的前端采用了Vue來做,因此當(dāng)用戶登錄成功之后,系統(tǒng)將根據(jù)用戶的角色動(dòng)態(tài)加載需要的模塊,所有模塊的信息將保存在menu表中,menu表中的path、component、iconCls、keepAlive、requireAuth等字段都是Vue-Router中需要的字段,也就是說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ù)庫腳本可以在文末的項(xiàng)目地址中下載,位置resources/vhr.sql):

    這里寫圖片描述
    這里寫圖片描述
    這里寫圖片描述

    整體效果

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

    這里寫圖片描述

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

    這里寫圖片描述

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

    這里寫圖片描述

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

    這里寫圖片描述

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

    項(xiàng)目地址

    由于商業(yè)協(xié)議,原本的項(xiàng)目不能共享給各位小伙伴,因此我專門做了一個(gè)開源項(xiàng)目,這個(gè)項(xiàng)目的功能整體來說比較多,但是考慮到這個(gè)系列的文章主要是向大家介紹權(quán)限管理模塊,因此其他模塊都被我暫時(shí)閹割掉了,不過小伙伴們可以放心,權(quán)限管理模塊的代碼一行都沒有刪除,涉及到權(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ù)庫腳本放在hrserver項(xiàng)目的resources目錄下,在MySQL中執(zhí)行數(shù)據(jù)庫腳本

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

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

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

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

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

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

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

    npm run build
    • 1

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

    步驟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è)角色可以操作的資源,修改成功之后,注銷登錄,再以被修改的用戶身份登錄,即可看到菜單變化。

    好了,本文我們就先說這么多,從下篇文章開始,我會(huì)和小伙伴分享這個(gè)效果實(shí)現(xiàn)的核心思路,歡迎小伙伴們持續(xù)關(guān)注。

    關(guān)注公眾號(hào),可以及時(shí)接收到最新文章:

      本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
      轉(zhuǎn)藏 分享 獻(xiàn)花(0

      0條評(píng)論

      發(fā)表

      請(qǐng)遵守用戶 評(píng)論公約

      類似文章 更多

      主站蜘蛛池模板: 国产人妻久久精品一区| 国产亚洲精品第一综合另类灬| 亚洲伊人五月丁香激情| 999ZYZ玖玖资源站在线观看| AV激情亚洲男人的天堂| 亚洲熟妇自偷自拍另类| 亚洲AV无码乱码在线观看性色扶| 亚洲人成电影网站色mp4| 无码日韩做暖暖大全免费不卡| 免费无码国产欧美久久18| 久久精品久久电影免费理论片| 秋霞电影院午夜无码免费视频| 人妻少妇精品无码专区动漫| 国产不卡一区二区四区| 亚洲男女一区二区三区| 精品人妻日韩中文字幕| 国产精品爽爽VA在线观看无码| 亚洲免费成人av一区| 亚洲乱亚洲乱少妇无码| 日韩高清国产中文字幕| 久久不见久久见免费视频观看| √天堂中文www官网在线| 鲁丝一区二区三区免费| 国产精品久久露脸蜜臀| 99久久免费精品国产72精品九九| 亚洲精品中文av在线| 又大又粗又硬又爽黄毛少妇| 2021国产精品视频网站| 2019亚洲午夜无码天堂| 无码一区二区三区AV免费| 精品不卡一区二区三区| 国产精品国产三级国产AV主播| 国产午精品午夜福利757视频播放| 精品一区二区三区自拍图片区| 亚洲爆乳WWW无码专区| 国产色无码精品视频免费| 狠狠色丁香婷婷综合尤物| 国产欧美日韩亚洲一区二区三区| 色窝窝无码一区二区三区成人网站| 久久月本道色综合久久| 少妇熟女久久综合网色欲|