<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當前位置: 首頁 - 科技 - 知識百科 - 正文

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

        來源:懂視網(wǎng) 責編:小采 時間:2020-11-27 22:21:47
        文檔

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

        SpringBoot+Vue前后端分離,使用SpringSecurity完美處理權(quán)限問題的解決方法:當前后端分離時,權(quán)限問題的處理也和我們傳統(tǒng)的處理方式有一點差異。筆者前幾天剛好在負責一個項目的權(quán)限管理模塊,現(xiàn)在權(quán)限管理模塊已經(jīng)做完了,我想通過5-6篇文章,來介紹一下項目中遇到的問題以及我的解決方案,希望這個系列能夠給小伙伴一些幫助。本系列
        推薦度:
        導讀SpringBoot+Vue前后端分離,使用SpringSecurity完美處理權(quán)限問題的解決方法:當前后端分離時,權(quán)限問題的處理也和我們傳統(tǒng)的處理方式有一點差異。筆者前幾天剛好在負責一個項目的權(quán)限管理模塊,現(xiàn)在權(quán)限管理模塊已經(jīng)做完了,我想通過5-6篇文章,來介紹一下項目中遇到的問題以及我的解決方案,希望這個系列能夠給小伙伴一些幫助。本系列

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

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

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

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

         

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

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

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

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

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

        整體效果

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

         

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

         

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

         

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

         

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

        項目地址

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

        項目地址: https://github.com/lenve/vhr

        快速部署

        1.clone項目到本地 git@github.com:lenve/vhr.git

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

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

        4.在IntelliJ IDEA中運行hrserver項目

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

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

        # 安裝依賴
        npm install
        # 在 localhost:8080 啟動項目
        npm run dev

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

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

        npm run build

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

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

        注意事項

        再次強調(diào),這只是一個權(quán)限管理功能模塊,運行后只有權(quán)限管理功能是完整的。小伙伴們在本地部署成功之后,可以修改每一個用戶的角色以及每一個角色可以操作的資源,修改成功之后,注銷登錄,再以被修改的用戶身份登錄,即可看到菜單變化。

        總結(jié)

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

        聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

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

        SpringBoot+Vue前后端分離,使用SpringSecurity完美處理權(quán)限問題的解決方法:當前后端分離時,權(quán)限問題的處理也和我們傳統(tǒng)的處理方式有一點差異。筆者前幾天剛好在負責一個項目的權(quán)限管理模塊,現(xiàn)在權(quán)限管理模塊已經(jīng)做完了,我想通過5-6篇文章,來介紹一下項目中遇到的問題以及我的解決方案,希望這個系列能夠給小伙伴一些幫助。本系列
        推薦度:
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 国产91免费视频| 免费一区二区三区四区五区| 亚洲制服丝袜第一页| 成人免费无码精品国产电影| 思思久久99热免费精品6| 亚洲国产精品人久久| 在线看片免费不卡人成视频| xxxxx做受大片在线观看免费| 久久精品国产亚洲av水果派| 国产高清视频在线免费观看| 在线看片免费人成视频播| 亚洲欧美国产精品专区久久| 亚洲熟妇丰满多毛XXXX| 蜜桃视频在线观看免费网址入口| 日韩a毛片免费观看| 亚洲一区二区免费视频| 中文字幕亚洲综合久久菠萝蜜 | 美女视频黄a视频全免费网站一区| 亚洲第一视频网站| 免费一级黄色毛片| 动漫黄网站免费永久在线观看| 黄视频在线观看免费| 亚洲hairy多毛pics大全| 亚洲国语精品自产拍在线观看| 国产成人3p视频免费观看| 四虎在线成人免费网站| 国产精品无码永久免费888| 亚洲熟妇久久精品| 亚洲自偷自拍另类图片二区| 成人亚洲性情网站WWW在线观看| 成人午夜免费福利| 麻豆高清免费国产一区| a毛片免费播放全部完整| 国产av无码专区亚洲av毛片搜 | 亚洲人成伊人成综合网久久| 亚洲成AV人片在线观看无码| 亚洲?v无码国产在丝袜线观看| 成年性午夜免费视频网站不卡| 蜜桃视频在线观看免费视频网站WWW| 国产精品极品美女自在线观看免费| 亚洲AV无码AV日韩AV网站|