国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Spring Cloud + Vue前后端分離-第12章 通用權(quán)限設(shè)計(jì)

這篇具有很好參考價(jià)值的文章主要介紹了Spring Cloud + Vue前后端分離-第12章 通用權(quán)限設(shè)計(jì)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

?源代碼在GitHub - 629y/course: Spring Cloud + Vue前后端分離-在線課程

Spring Cloud + Vue前后端分離-第12章 通用權(quán)限設(shè)計(jì)

這一章我們不依賴第三方框架,我會(huì)從權(quán)限相關(guān)表的設(shè)計(jì),到權(quán)限的配置,到權(quán)限的攔截,帶大家一步一步的做出一個(gè)通用的權(quán)限設(shè)計(jì)方案。

12-1 通用權(quán)限解決方案介紹

權(quán)限攔截的對(duì)象:用戶

權(quán)限攔截的點(diǎn):菜單、路由、接口、按鈕

控制用戶對(duì)資源的訪問

權(quán)限的操作:配置、讀取、攔截

100用戶 * 100資源

直接用用戶和資源做關(guān)聯(lián)來控制權(quán)限,適合小型的項(xiàng)目,簡單,快速

三個(gè)核心概念:用戶、角色、資源

100用戶 * 2個(gè)角色 + 2個(gè)角色 * 100資源

經(jīng)典的權(quán)限管理設(shè)計(jì):用戶和角色關(guān)聯(lián),角色和資源關(guān)聯(lián)

功能點(diǎn):

配置:

????????用戶管理:用戶表,用戶管理界面,已完成

????????資源配置:資源表,資源配置界面

????????角色管理:角色表,角色管理界面

????????用戶角色關(guān)聯(lián)配置:用戶角色關(guān)聯(lián)表,復(fù)用角色管理界面

????????角色資源關(guān)聯(lián)配置:角色資源關(guān)聯(lián)表,復(fù)用角色管理界面

兩張關(guān)聯(lián)表的配置,可以單獨(dú)設(shè)計(jì)界面,也可以直接做到角色管理界面里。

讀取:

? ? ? ? 用戶權(quán)限的讀?。河脩舻卿浀臅r(shí)候,讀取該用戶的所有權(quán)限。

登錄時(shí),通過用戶角色關(guān)聯(lián)表,可以知道當(dāng)前登錄用戶的角色,再通過角色資源關(guān)聯(lián)表就可以查到當(dāng)前用戶所有的資源

攔截:

? ? ? ? 用戶操作業(yè)務(wù)時(shí),進(jìn)行權(quán)限攔截

? ? ? ? ? ? ? ? 前端界面:菜單,路由,按鈕,hidden disabled

? ? ? ? ? ? ? ? 后端接口:接口,gateway的過濾器

疑問:前端已經(jīng)對(duì)菜單和按鈕做攔截,用戶不能操作了,為什么還要對(duì)接口做攔截?

重要提示:所有前端的設(shè)計(jì)都是不安全的。

例登錄名被修改了,說明我們的接口沒有做登錄名不可修改的校驗(yàn),因?yàn)槲覀冋J(rèn)為給登錄名加了disabled就可以了,這是一個(gè)常見的安全隱患。

權(quán)限初始化

系統(tǒng)上線時(shí),要初始化這五張表的數(shù)據(jù)。初始有一個(gè)用戶能登錄,能管理角色,管理資源,分配權(quán)限。

前面的章節(jié)的講解模式是從簡單的功能入手,再不斷的擴(kuò)展和完善,這一章,我們換一種模式,就會(huì)先分析需求,再列出功能點(diǎn),明確總體要做哪些功能,再開始開發(fā)。

在實(shí)際工作中,也是用這種模式,我們還會(huì)加入團(tuán)隊(duì)評(píng)審的環(huán)節(jié),確保我們的功能不會(huì)做歪了。

中高級(jí)面試題:請(qǐng)簡單的設(shè)計(jì)一個(gè)權(quán)限管理功能,對(duì)初級(jí)人員來說會(huì)有點(diǎn)難,不過學(xué)完這一章,就不是問題了。

12-2 資源配置管理

資源表的設(shè)計(jì)與基本代碼生成

1.通用權(quán)限管理:資源表的設(shè)計(jì)與基本代碼生成

資源的名稱一般是用頁面上看得見的元素:菜單、按鈕等。

all.sql

Spring Cloud + Vue前后端分離-第12章 通用權(quán)限設(shè)計(jì),springcloud,vue.js,spring cloud,前端

Spring Cloud + Vue前后端分離-第12章 通用權(quán)限設(shè)計(jì),springcloud,vue.js,spring cloud,前端

如果一個(gè)頁面的所有操作統(tǒng)一控制權(quán)限,request可以填相關(guān)接口的前綴

生成代碼

Spring Cloud + Vue前后端分離-第12章 通用權(quán)限設(shè)計(jì),springcloud,vue.js,spring cloud,前端

Spring Cloud + Vue前后端分離-第12章 通用權(quán)限設(shè)計(jì),springcloud,vue.js,spring cloud,前端

ResourceService.java報(bào)錯(cuò)原因:資源表的實(shí)體類是Resource和@Resource注解同名,導(dǎo)致沖突?

Spring Cloud + Vue前后端分離-第12章 通用權(quán)限設(shè)計(jì),springcloud,vue.js,spring cloud,前端

Spring Cloud + Vue前后端分離-第12章 通用權(quán)限設(shè)計(jì),springcloud,vue.js,spring cloud,前端

admin.vue

Spring Cloud + Vue前后端分離-第12章 通用權(quán)限設(shè)計(jì),springcloud,vue.js,spring cloud,前端

router.js

Spring Cloud + Vue前后端分離-第12章 通用權(quán)限設(shè)計(jì),springcloud,vue.js,spring cloud,前端

Spring Cloud + Vue前后端分離-第12章 通用權(quán)限設(shè)計(jì),springcloud,vue.js,spring cloud,前端

測(cè)試

Spring Cloud + Vue前后端分離-第12章 通用權(quán)限設(shè)計(jì),springcloud,vue.js,spring cloud,前端

資源樹的保存

1.通用權(quán)限管理:資源樹的保存

資源點(diǎn)是開發(fā)階段就確定的,所以并不是上線后再一個(gè)一個(gè)配置的。

資源管理最簡單的一種方案:上線前準(zhǔn)備好sql,刷庫。

將資源管理做成資源樹進(jìn)行管理。

填入數(shù)據(jù):帶有層級(jí)結(jié)構(gòu)的json字符串

resource.json

Spring Cloud + Vue前后端分離-第12章 通用權(quán)限設(shè)計(jì),springcloud,vue.js,spring cloud,前端

用法:以后開發(fā)新功能的時(shí)候,就在該文件里加入新的資源,可以上線前將新的資源json通過控臺(tái)保存進(jìn)數(shù)據(jù)庫。

resource.vue

Spring Cloud + Vue前后端分離-第12章 通用權(quán)限設(shè)計(jì),springcloud,vue.js,spring cloud,前端

Spring Cloud + Vue前后端分離-第12章 通用權(quán)限設(shè)計(jì),springcloud,vue.js,spring cloud,前端

Spring Cloud + Vue前后端分離-第12章 通用權(quán)限設(shè)計(jì),springcloud,vue.js,spring cloud,前端

ResourceDto.java

Spring Cloud + Vue前后端分離-第12章 通用權(quán)限設(shè)計(jì),springcloud,vue.js,spring cloud,前端

ResourceService.java

Spring Cloud + Vue前后端分離-第12章 通用權(quán)限設(shè)計(jì),springcloud,vue.js,spring cloud,前端

Spring Cloud + Vue前后端分離-第12章 通用權(quán)限設(shè)計(jì),springcloud,vue.js,spring cloud,前端Spring Cloud + Vue前后端分離-第12章 通用權(quán)限設(shè)計(jì),springcloud,vue.js,spring cloud,前端

Spring Cloud + Vue前后端分離-第12章 通用權(quán)限設(shè)計(jì),springcloud,vue.js,spring cloud,前端

將節(jié)點(diǎn)一個(gè)一個(gè)的取出來,放入list中?

ResourceController.java

Spring Cloud + Vue前后端分離-第12章 通用權(quán)限設(shè)計(jì),springcloud,vue.js,spring cloud,前端

測(cè)試

Spring Cloud + Vue前后端分離-第12章 通用權(quán)限設(shè)計(jì),springcloud,vue.js,spring cloud,前端

Spring Cloud + Vue前后端分離-第12章 通用權(quán)限設(shè)計(jì),springcloud,vue.js,spring cloud,前端

Spring Cloud + Vue前后端分離-第12章 通用權(quán)限設(shè)計(jì),springcloud,vue.js,spring cloud,前端

Spring Cloud + Vue前后端分離-第12章 通用權(quán)限設(shè)計(jì),springcloud,vue.js,spring cloud,前端

資源樹的顯示

1.通用權(quán)限管理:資源樹的顯示

resource.vue

Spring Cloud + Vue前后端分離-第12章 通用權(quán)限設(shè)計(jì),springcloud,vue.js,spring cloud,前端

Spring Cloud + Vue前后端分離-第12章 通用權(quán)限設(shè)計(jì),springcloud,vue.js,spring cloud,前端

Spring Cloud + Vue前后端分離-第12章 通用權(quán)限設(shè)計(jì),springcloud,vue.js,spring cloud,前端

ResourceController.java

Spring Cloud + Vue前后端分離-第12章 通用權(quán)限設(shè)計(jì),springcloud,vue.js,spring cloud,前端

ResourceService.java

Spring Cloud + Vue前后端分離-第12章 通用權(quán)限設(shè)計(jì),springcloud,vue.js,spring cloud,前端

Spring Cloud + Vue前后端分離-第12章 通用權(quán)限設(shè)計(jì),springcloud,vue.js,spring cloud,前端

資源的保存是將樹結(jié)構(gòu)轉(zhuǎn)成列表,重點(diǎn)是children屬性;資源的顯示是將列表轉(zhuǎn)成樹結(jié)構(gòu),重點(diǎn)是parent屬性。

小知識(shí):一邊循環(huán)list,一邊刪除list中的對(duì)象,可以使用倒序循環(huán)。

list中有父節(jié)點(diǎn)的對(duì)象都會(huì)被remove掉,最終留下來的就是頂級(jí)的節(jié)點(diǎn)。

測(cè)試

Spring Cloud + Vue前后端分離-第12章 通用權(quán)限設(shè)計(jì),springcloud,vue.js,spring cloud,前端

12-3 角色權(quán)限管理

基本的角色管理功能

1.通用權(quán)限管理:增加基本的角色管理功能

2.資源列表補(bǔ)全

all.sql

Spring Cloud + Vue前后端分離-第12章 通用權(quán)限設(shè)計(jì),springcloud,vue.js,spring cloud,前端

Spring Cloud + Vue前后端分離-第12章 通用權(quán)限設(shè)計(jì),springcloud,vue.js,spring cloud,前端

Spring Cloud + Vue前后端分離-第12章 通用權(quán)限設(shè)計(jì),springcloud,vue.js,spring cloud,前端

Spring Cloud + Vue前后端分離-第12章 通用權(quán)限設(shè)計(jì),springcloud,vue.js,spring cloud,前端

admin.vue

Spring Cloud + Vue前后端分離-第12章 通用權(quán)限設(shè)計(jì),springcloud,vue.js,spring cloud,前端

router.js

Spring Cloud + Vue前后端分離-第12章 通用權(quán)限設(shè)計(jì),springcloud,vue.js,spring cloud,前端

Spring Cloud + Vue前后端分離-第12章 通用權(quán)限設(shè)計(jì),springcloud,vue.js,spring cloud,前端

resource.json

[{
  "id" : "01","name": "系統(tǒng)管理",
  "children": [{
    "id" : "0101","name": "用戶管理","page": "/system/user",
    "children": [
      {"id": "010101","name": "保存","request": ["/system/admin/user/list","/system/admin/user/save"]},
      {"id": "010102","name": "刪除","request": ["/system/admin/user/delete"]},
      {"id": "010103","name": "重置密碼","request": ["/system/admin/user/save-password"]}
    ]
  },
    {
      "id" : "0102","name": "資源管理","page": "/system/resource",
      "children": [
        {"id": "010201","name": "保存/顯示","request": ["/system/admin/resource"]}
      ]
    },{
      "id" : "0103","name": "角色管理","page": "/system/role",
      "children": [
        {"id": "010301","name": "角色/權(quán)限管理","request": ["/system/admin/role"]}
      ]
    }]
},
  {
    "id" : "02","name": "業(yè)務(wù)管理",
    "children": [{
      "id" : "0201","name": "分類管理","page": "business/category",
      "children": [
        {"id": "020101","name": "增刪改查","request": ["/business/admin/category"]}
      ]
    },
      {
        "id" : "0202","name": "課程管理","page": "business/course",
        "children": [
          {"id": "020201","name": "增刪改查","request": ["/business/admin/course",
            "/business/admin/category/all,/business/admin/teacher/list","/file/f/course","/business/chapter"]}
        ]
      },{
        "id" : "0203","name": "講師管理","page": "business/teacher",
        "children": [
          {"id": "020301","name": "增刪改查","request": ["/business/admin/teacher"]}
        ]
      }, {
        "id" : "0204","name": "大章管理","page": "business/chapter",
        "children": [
          {"id": "020401","name": "增刪改查","request": ["/business/admin/course","/business/admin/chapter"]}
        ]
      },
      {
        "id" : "0205","name": "小節(jié)管理","page": "business/section",
        "children": [
          {"id": "020501","name": "增刪改查","request": ["/business/admin/section","/business/admin/chapter"]}
        ]
      }
    ]
  },
  {
    "id" : "03","name": "文件管理",
    "children": [{
      "id" : "0301","name": "文件管理","page": "file/file",
      "children": [
        {"id": "030101","name": "文件管理","request": ["/file/admin/file","/file/admin"]}
      ]
    }]
  }
]

測(cè)試

Spring Cloud + Vue前后端分離-第12章 通用權(quán)限設(shè)計(jì),springcloud,vue.js,spring cloud,前端

增加角色資源關(guān)聯(lián)功能

1.通用權(quán)限管理:增加角色資源關(guān)聯(lián)功能表,生成持久層和服務(wù)端代碼

all.sql

Spring Cloud + Vue前后端分離-第12章 通用權(quán)限設(shè)計(jì),springcloud,vue.js,spring cloud,前端

Spring Cloud + Vue前后端分離-第12章 通用權(quán)限設(shè)計(jì),springcloud,vue.js,spring cloud,前端

Spring Cloud + Vue前后端分離-第12章 通用權(quán)限設(shè)計(jì),springcloud,vue.js,spring cloud,前端

點(diǎn)擊[關(guān)聯(lián)資源]按鈕時(shí),加載資源樹

1.通用權(quán)限管理:點(diǎn)擊[關(guān)聯(lián)資源]按鈕時(shí),加載資源樹

role.vue

Spring Cloud + Vue前后端分離-第12章 通用權(quán)限設(shè)計(jì),springcloud,vue.js,spring cloud,前端

Spring Cloud + Vue前后端分離-第12章 通用權(quán)限設(shè)計(jì),springcloud,vue.js,spring cloud,前端

Spring Cloud + Vue前后端分離-第12章 通用權(quán)限設(shè)計(jì),springcloud,vue.js,spring cloud,前端

Spring Cloud + Vue前后端分離-第12章 通用權(quán)限設(shè)計(jì),springcloud,vue.js,spring cloud,前端

測(cè)試

Spring Cloud + Vue前后端分離-第12章 通用權(quán)限設(shè)計(jì),springcloud,vue.js,spring cloud,前端

Spring Cloud + Vue前后端分離-第12章 通用權(quán)限設(shè)計(jì),springcloud,vue.js,spring cloud,前端

Spring Cloud + Vue前后端分離-第12章 通用權(quán)限設(shè)計(jì),springcloud,vue.js,spring cloud,前端

Spring Cloud + Vue前后端分離-第12章 通用權(quán)限設(shè)計(jì),springcloud,vue.js,spring cloud,前端

點(diǎn)擊資源樹模態(tài)框【保存】按鈕時(shí),保存角色資源關(guān)聯(lián)表

1.通用權(quán)限管理:點(diǎn)擊資源樹模態(tài)框【保存】按鈕時(shí),保存角色資源關(guān)聯(lián)表

role.vue

Spring Cloud + Vue前后端分離-第12章 通用權(quán)限設(shè)計(jì),springcloud,vue.js,spring cloud,前端

Spring Cloud + Vue前后端分離-第12章 通用權(quán)限設(shè)計(jì),springcloud,vue.js,spring cloud,前端

Spring Cloud + Vue前后端分離-第12章 通用權(quán)限設(shè)計(jì),springcloud,vue.js,spring cloud,前端

RoleDto.java

Spring Cloud + Vue前后端分離-第12章 通用權(quán)限設(shè)計(jì),springcloud,vue.js,spring cloud,前端

RoleService.java

Spring Cloud + Vue前后端分離-第12章 通用權(quán)限設(shè)計(jì),springcloud,vue.js,spring cloud,前端

Spring Cloud + Vue前后端分離-第12章 通用權(quán)限設(shè)計(jì),springcloud,vue.js,spring cloud,前端

RoleController.java

Spring Cloud + Vue前后端分離-第12章 通用權(quán)限設(shè)計(jì),springcloud,vue.js,spring cloud,前端

測(cè)試

Spring Cloud + Vue前后端分離-第12章 通用權(quán)限設(shè)計(jì),springcloud,vue.js,spring cloud,前端

Spring Cloud + Vue前后端分離-第12章 通用權(quán)限設(shè)計(jì),springcloud,vue.js,spring cloud,前端

Spring Cloud + Vue前后端分離-第12章 通用權(quán)限設(shè)計(jì),springcloud,vue.js,spring cloud,前端

Spring Cloud + Vue前后端分離-第12章 通用權(quán)限設(shè)計(jì),springcloud,vue.js,spring cloud,前端

打開資源樹模態(tài)框時(shí),加載角色資源關(guān)聯(lián)數(shù)據(jù),并自動(dòng)勾選樹節(jié)點(diǎn)

1.通用權(quán)限管理:打開資源樹模態(tài)框時(shí),加載角色資源關(guān)聯(lián)數(shù)據(jù),并自動(dòng)勾選樹節(jié)點(diǎn)

role.vue

Spring Cloud + Vue前后端分離-第12章 通用權(quán)限設(shè)計(jì),springcloud,vue.js,spring cloud,前端

Spring Cloud + Vue前后端分離-第12章 通用權(quán)限設(shè)計(jì),springcloud,vue.js,spring cloud,前端

批量操作的思路:先將原有的刪除,再批量新增

RoleService.java

Spring Cloud + Vue前后端分離-第12章 通用權(quán)限設(shè)計(jì),springcloud,vue.js,spring cloud,前端

RoleController.java

Spring Cloud + Vue前后端分離-第12章 通用權(quán)限設(shè)計(jì),springcloud,vue.js,spring cloud,前端

?測(cè)試

Spring Cloud + Vue前后端分離-第12章 通用權(quán)限設(shè)計(jì),springcloud,vue.js,spring cloud,前端

Spring Cloud + Vue前后端分離-第12章 通用權(quán)限設(shè)計(jì),springcloud,vue.js,spring cloud,前端

Spring Cloud + Vue前后端分離-第12章 通用權(quán)限設(shè)計(jì),springcloud,vue.js,spring cloud,前端

增加角色用戶關(guān)聯(lián)功能

1.通用權(quán)限管理:增加角色用戶關(guān)聯(lián)表,生成持久層和服務(wù)端代碼

all.sql

Spring Cloud + Vue前后端分離-第12章 通用權(quán)限設(shè)計(jì),springcloud,vue.js,spring cloud,前端

Spring Cloud + Vue前后端分離-第12章 通用權(quán)限設(shè)計(jì),springcloud,vue.js,spring cloud,前端

Spring Cloud + Vue前后端分離-第12章 通用權(quán)限設(shè)計(jì),springcloud,vue.js,spring cloud,前端

點(diǎn)擊【關(guān)聯(lián)用戶】按鈕時(shí),加載所有用戶,彈出角色用戶關(guān)聯(lián)模態(tài)框

1.通用權(quán)限管理:點(diǎn)擊【關(guān)聯(lián)用戶】按鈕時(shí),加載所有用戶,彈出角色用戶關(guān)聯(lián)模態(tài)框

role.vue

Spring Cloud + Vue前后端分離-第12章 通用權(quán)限設(shè)計(jì),springcloud,vue.js,spring cloud,前端

Spring Cloud + Vue前后端分離-第12章 通用權(quán)限設(shè)計(jì),springcloud,vue.js,spring cloud,前端

Spring Cloud + Vue前后端分離-第12章 通用權(quán)限設(shè)計(jì),springcloud,vue.js,spring cloud,前端

Spring Cloud + Vue前后端分離-第12章 通用權(quán)限設(shè)計(jì),springcloud,vue.js,spring cloud,前端

Spring Cloud + Vue前后端分離-第12章 通用權(quán)限設(shè)計(jì),springcloud,vue.js,spring cloud,前端

Spring Cloud + Vue前后端分離-第12章 通用權(quán)限設(shè)計(jì),springcloud,vue.js,spring cloud,前端

Spring Cloud + Vue前后端分離-第12章 通用權(quán)限設(shè)計(jì),springcloud,vue.js,spring cloud,前端

測(cè)試

Spring Cloud + Vue前后端分離-第12章 通用權(quán)限設(shè)計(jì),springcloud,vue.js,spring cloud,前端

Spring Cloud + Vue前后端分離-第12章 通用權(quán)限設(shè)計(jì),springcloud,vue.js,spring cloud,前端

點(diǎn)擊用戶模態(tài)框【保存】按鈕時(shí),保存角色用戶關(guān)聯(lián)表

1.通用權(quán)限管理:點(diǎn)擊用戶模態(tài)框【保存】按鈕時(shí),保存角色用戶關(guān)聯(lián)表

role.vue

Spring Cloud + Vue前后端分離-第12章 通用權(quán)限設(shè)計(jì),springcloud,vue.js,spring cloud,前端

Spring Cloud + Vue前后端分離-第12章 通用權(quán)限設(shè)計(jì),springcloud,vue.js,spring cloud,前端

Spring Cloud + Vue前后端分離-第12章 通用權(quán)限設(shè)計(jì),springcloud,vue.js,spring cloud,前端

依賴vue的雙向數(shù)據(jù)綁定特性,可以將復(fù)雜的頁面操作變成簡單的數(shù)據(jù)操作。很多前端框架都有雙向數(shù)據(jù)綁定的特性,比如angular,微信小程序等。

Spring Cloud + Vue前后端分離-第12章 通用權(quán)限設(shè)計(jì),springcloud,vue.js,spring cloud,前端

Spring Cloud + Vue前后端分離-第12章 通用權(quán)限設(shè)計(jì),springcloud,vue.js,spring cloud,前端

RoleDto.java

Spring Cloud + Vue前后端分離-第12章 通用權(quán)限設(shè)計(jì),springcloud,vue.js,spring cloud,前端

RoleService.java

Spring Cloud + Vue前后端分離-第12章 通用權(quán)限設(shè)計(jì),springcloud,vue.js,spring cloud,前端

Spring Cloud + Vue前后端分離-第12章 通用權(quán)限設(shè)計(jì),springcloud,vue.js,spring cloud,前端

RoleController.java

Spring Cloud + Vue前后端分離-第12章 通用權(quán)限設(shè)計(jì),springcloud,vue.js,spring cloud,前端

測(cè)試

Spring Cloud + Vue前后端分離-第12章 通用權(quán)限設(shè)計(jì),springcloud,vue.js,spring cloud,前端

Spring Cloud + Vue前后端分離-第12章 通用權(quán)限設(shè)計(jì),springcloud,vue.js,spring cloud,前端

Spring Cloud + Vue前后端分離-第12章 通用權(quán)限設(shè)計(jì),springcloud,vue.js,spring cloud,前端

打開用戶模態(tài)框時(shí),加載角色用戶關(guān)聯(lián)數(shù)據(jù)

1.通用權(quán)限管理:打開用戶模態(tài)框時(shí),加載角色用戶關(guān)聯(lián)數(shù)據(jù)

role.vue

Spring Cloud + Vue前后端分離-第12章 通用權(quán)限設(shè)計(jì),springcloud,vue.js,spring cloud,前端?查關(guān)聯(lián)表,得到的時(shí)userId,但是顯示需要的是loginName。這里也可以通過寫自定義mapper,把user表和role_user表關(guān)聯(lián)得到loginName

Spring Cloud + Vue前后端分離-第12章 通用權(quán)限設(shè)計(jì),springcloud,vue.js,spring cloud,前端

RoleService.java

Spring Cloud + Vue前后端分離-第12章 通用權(quán)限設(shè)計(jì),springcloud,vue.js,spring cloud,前端

RoleController.java

Spring Cloud + Vue前后端分離-第12章 通用權(quán)限設(shè)計(jì),springcloud,vue.js,spring cloud,前端

測(cè)試

Spring Cloud + Vue前后端分離-第12章 通用權(quán)限設(shè)計(jì),springcloud,vue.js,spring cloud,前端

Spring Cloud + Vue前后端分離-第12章 通用權(quán)限設(shè)計(jì),springcloud,vue.js,spring cloud,前端

Spring Cloud + Vue前后端分離-第12章 通用權(quán)限設(shè)計(jì),springcloud,vue.js,spring cloud,前端

12-4 登錄時(shí)獲取資源權(quán)限

讀取當(dāng)前登錄用戶所屬的角色的所有資源

1.通用權(quán)限管理:登錄時(shí),讀取當(dāng)前登錄用戶所屬的角色的所有資源

LoginUserDto.java

Spring Cloud + Vue前后端分離-第12章 通用權(quán)限設(shè)計(jì),springcloud,vue.js,spring cloud,前端

一個(gè)資源可以會(huì)用到多個(gè)接口,多個(gè)資源的接口就可能重復(fù),所以這里用Set去重

MyUserMapper.xml

Spring Cloud + Vue前后端分離-第12章 通用權(quán)限設(shè)計(jì),springcloud,vue.js,spring cloud,前端

MyUserMapper.java

Spring Cloud + Vue前后端分離-第12章 通用權(quán)限設(shè)計(jì),springcloud,vue.js,spring cloud,前端

UserService.java

Spring Cloud + Vue前后端分離-第12章 通用權(quán)限設(shè)計(jì),springcloud,vue.js,spring cloud,前端

Spring Cloud + Vue前后端分離-第12章 通用權(quán)限設(shè)計(jì),springcloud,vue.js,spring cloud,前端

Spring Cloud + Vue前后端分離-第12章 通用權(quán)限設(shè)計(jì),springcloud,vue.js,spring cloud,前端?測(cè)試

00000000

Spring Cloud + Vue前后端分離-第12章 通用權(quán)限設(shè)計(jì),springcloud,vue.js,spring cloud,前端

Spring Cloud + Vue前后端分離-第12章 通用權(quán)限設(shè)計(jì),springcloud,vue.js,spring cloud,前端

00000001?

Spring Cloud + Vue前后端分離-第12章 通用權(quán)限設(shè)計(jì),springcloud,vue.js,spring cloud,前端

Spring Cloud + Vue前后端分離-第12章 通用權(quán)限設(shè)計(jì),springcloud,vue.js,spring cloud,前端

00000002

Spring Cloud + Vue前后端分離-第12章 通用權(quán)限設(shè)計(jì),springcloud,vue.js,spring cloud,前端

?關(guān)于User的權(quán)限設(shè)置比較細(xì),每個(gè)請(qǐng)求接口都可以單獨(dú)控制。關(guān)于Resource的權(quán)限設(shè)置比較粗,所有接口用同一個(gè)request控制

Spring Cloud + Vue前后端分離-第12章 通用權(quán)限設(shè)計(jì),springcloud,vue.js,spring cloud,前端

Spring Cloud + Vue前后端分離-第12章 通用權(quán)限設(shè)計(jì),springcloud,vue.js,spring cloud,前端

Spring Cloud + Vue前后端分離-第12章 通用權(quán)限設(shè)計(jì),springcloud,vue.js,spring cloud,前端

Spring Cloud + Vue前后端分離-第12章 通用權(quán)限設(shè)計(jì),springcloud,vue.js,spring cloud,前端

12-5 權(quán)限攔截功能開發(fā)

前端界面權(quán)限攔截

前端界面權(quán)限攔截,完成用戶管理

1.通用權(quán)限管理:前端界面權(quán)限攔截,完成用戶管理

tool.js

Spring Cloud + Vue前后端分離-第12章 通用權(quán)限設(shè)計(jì),springcloud,vue.js,spring cloud,前端

admin.vue

在html中要使用vue方法,這個(gè)方法得在methods中定義

Spring Cloud + Vue前后端分離-第12章 通用權(quán)限設(shè)計(jì),springcloud,vue.js,spring cloud,前端

Spring Cloud + Vue前后端分離-第12章 通用權(quán)限設(shè)計(jì),springcloud,vue.js,spring cloud,前端

Spring Cloud + Vue前后端分離-第12章 通用權(quán)限設(shè)計(jì),springcloud,vue.js,spring cloud,前端

user.vue

Spring Cloud + Vue前后端分離-第12章 通用權(quán)限設(shè)計(jì),springcloud,vue.js,spring cloud,前端

Spring Cloud + Vue前后端分離-第12章 通用權(quán)限設(shè)計(jì),springcloud,vue.js,spring cloud,前端

Spring Cloud + Vue前后端分離-第12章 通用權(quán)限設(shè)計(jì),springcloud,vue.js,spring cloud,前端

測(cè)試

目前只修改了用戶管理的權(quán)限攔截,以用戶管理為例

00000000

Spring Cloud + Vue前后端分離-第12章 通用權(quán)限設(shè)計(jì),springcloud,vue.js,spring cloud,前端

Spring Cloud + Vue前后端分離-第12章 通用權(quán)限設(shè)計(jì),springcloud,vue.js,spring cloud,前端

每次修改權(quán)限配置,需要重新登錄后才生效

Spring Cloud + Vue前后端分離-第12章 通用權(quán)限設(shè)計(jì),springcloud,vue.js,spring cloud,前端

Spring Cloud + Vue前后端分離-第12章 通用權(quán)限設(shè)計(jì),springcloud,vue.js,spring cloud,前端

前端界面權(quán)限攔截,完成所有界面控制

1.通用權(quán)限管理:前端界面權(quán)限攔截,完成所有界面控制

admin.vue

Spring Cloud + Vue前后端分離-第12章 通用權(quán)限設(shè)計(jì),springcloud,vue.js,spring cloud,前端

Spring Cloud + Vue前后端分離-第12章 通用權(quán)限設(shè)計(jì),springcloud,vue.js,spring cloud,前端

Spring Cloud + Vue前后端分離-第12章 通用權(quán)限設(shè)計(jì),springcloud,vue.js,spring cloud,前端

如果一個(gè)頁面的所有按鈕是統(tǒng)一控制的,那么只需要控制菜單就可以了,不需要給每個(gè)按鈕加權(quán)限控制代碼。

測(cè)試

Spring Cloud + Vue前后端分離-第12章 通用權(quán)限設(shè)計(jì),springcloud,vue.js,spring cloud,前端

Spring Cloud + Vue前后端分離-第12章 通用權(quán)限設(shè)計(jì),springcloud,vue.js,spring cloud,前端Spring Cloud + Vue前后端分離-第12章 通用權(quán)限設(shè)計(jì),springcloud,vue.js,spring cloud,前端

Spring Cloud + Vue前后端分離-第12章 通用權(quán)限設(shè)計(jì),springcloud,vue.js,spring cloud,前端

路由權(quán)限判斷

1.通用權(quán)限管理:前端界面權(quán)限攔截,增加路由權(quán)限判斷

Spring Cloud + Vue前后端分離-第12章 通用權(quán)限設(shè)計(jì),springcloud,vue.js,spring cloud,前端

沒有資源管理,但是我們可以直接通過路由進(jìn)入

Spring Cloud + Vue前后端分離-第12章 通用權(quán)限設(shè)計(jì),springcloud,vue.js,spring cloud,前端

resource.json

Spring Cloud + Vue前后端分離-第12章 通用權(quán)限設(shè)計(jì),springcloud,vue.js,spring cloud,前端

[{
  "id" : "00","name": "歡迎","page": "welcome"
},{
  "id" : "01","name": "系統(tǒng)管理",
  "children": [{
    "id" : "0101","name": "用戶管理","page": "system/user",
    "children": [
      {"id": "010101","name": "保存","request": ["/system/admin/user/list","/system/admin/user/save"]},
      {"id": "010102","name": "刪除","request": ["/system/admin/user/delete"]},
      {"id": "010103","name": "重置密碼","request": ["/system/admin/user/save-password"]}
    ]
  },
    {
      "id" : "0102","name": "資源管理","page": "system/resource",
      "children": [
        {"id": "010201","name": "保存/顯示","request": ["/system/admin/resource"]}
      ]
    },{
      "id" : "0103","name": "角色管理","page": "system/role",
      "children": [
        {"id": "010301","name": "角色/權(quán)限管理","request": ["system/admin/role"]}
      ]
    }]
},
  {
    "id" : "02","name": "業(yè)務(wù)管理",
    "children": [{
      "id" : "0201","name": "分類管理","page": "business/category",
      "children": [
        {"id": "020101","name": "增刪改查","request": ["/business/admin/category"]}
      ]
    },
      {
        "id" : "0202","name": "課程管理","page": "business/course",
        "children": [
          {"id": "020201","name": "增刪改查","request": ["/business/admin/course",
            "/business/admin/category/all,/business/admin/teacher/list","/file/f/course","/business/chapter"]}
        ]
      },{
        "id" : "0203","name": "講師管理","page": "business/teacher",
        "children": [
          {"id": "020301","name": "增刪改查","request": ["/business/admin/teacher"]}
        ]
      }, {
        "id" : "0204","name": "大章管理","page": "business/chapter",
        "children": [
          {"id": "020401","name": "增刪改查","request": ["/business/admin/course","/business/admin/chapter"]}
        ]
      },
      {
        "id" : "0205","name": "小節(jié)管理","page": "business/section",
        "children": [
          {"id": "020501","name": "增刪改查","request": ["/business/admin/section","/business/admin/chapter"]}
        ]
      }
    ]
  },
  {
    "id" : "03","name": "文件管理",
    "children": [{
      "id" : "0301","name": "文件管理","page": "file/file",
      "children": [
        {"id": "030101","name": "文件管理","request": ["/file/admin/file","/file/admin"]}
      ]
    }]
  }
]

Spring Cloud + Vue前后端分離-第12章 通用權(quán)限設(shè)計(jì),springcloud,vue.js,spring cloud,前端

Spring Cloud + Vue前后端分離-第12章 通用權(quán)限設(shè)計(jì),springcloud,vue.js,spring cloud,前端?admin.vue

Spring Cloud + Vue前后端分離-第12章 通用權(quán)限設(shè)計(jì),springcloud,vue.js,spring cloud,前端

Spring Cloud + Vue前后端分離-第12章 通用權(quán)限設(shè)計(jì),springcloud,vue.js,spring cloud,前端

第一次加載admin.vue時(shí),需要判斷路由權(quán)限,比如從登錄頁跳到控臺(tái)主頁,或者刷新控臺(tái)主頁時(shí),會(huì)執(zhí)行mounted.

進(jìn)入控臺(tái)主頁后,發(fā)生子路由跳轉(zhuǎn)時(shí),會(huì)觸發(fā)watch。

測(cè)試

Spring Cloud + Vue前后端分離-第12章 通用權(quán)限設(shè)計(jì),springcloud,vue.js,spring cloud,前端

Spring Cloud + Vue前后端分離-第12章 通用權(quán)限設(shè)計(jì),springcloud,vue.js,spring cloud,前端

Spring Cloud + Vue前后端分離-第12章 通用權(quán)限設(shè)計(jì),springcloud,vue.js,spring cloud,前端

后端接口權(quán)限判斷

1.通用權(quán)限管理:增加后端接口權(quán)限攔截

在做登錄功能時(shí),我們也對(duì)接口做了登錄校驗(yàn),否則容易被繞開登錄,直接調(diào)用后端接口。這里同樣需要對(duì)接口做權(quán)限攔截

Spring Cloud + Vue前后端分離-第12章 通用權(quán)限設(shè)計(jì),springcloud,vue.js,spring cloud,前端

重新登錄?

Spring Cloud + Vue前后端分離-第12章 通用權(quán)限設(shè)計(jì),springcloud,vue.js,spring cloud,前端

可以通過搜索hidden,display:none等,來查看頁面是否有隱藏元素

ctrl+f

Spring Cloud + Vue前后端分離-第12章 通用權(quán)限設(shè)計(jì),springcloud,vue.js,spring cloud,前端

Spring Cloud + Vue前后端分離-第12章 通用權(quán)限設(shè)計(jì),springcloud,vue.js,spring cloud,前端

Spring Cloud + Vue前后端分離-第12章 通用權(quán)限設(shè)計(jì),springcloud,vue.js,spring cloud,前端

?可以刪除成功,這是非常危險(xiǎn)的Spring Cloud + Vue前后端分離-第12章 通用權(quán)限設(shè)計(jì),springcloud,vue.js,spring cloud,前端

?LoginAdminGatewayFilter.java

gateway里沒有飲用server模塊,所以沒用LoginUserDto類。這里轉(zhuǎn)成JSONObject進(jìn)行操作

Spring Cloud + Vue前后端分離-第12章 通用權(quán)限設(shè)計(jì),springcloud,vue.js,spring cloud,前端

Spring Cloud + Vue前后端分離-第12章 通用權(quán)限設(shè)計(jì),springcloud,vue.js,spring cloud,前端

比如資源的保存:

path=system/admin/resource/save,

而配置的

request=system/admin/resource,

那么path.contain(request)就是true

測(cè)試

Spring Cloud + Vue前后端分離-第12章 通用權(quán)限設(shè)計(jì),springcloud,vue.js,spring cloud,前端

Spring Cloud + Vue前后端分離-第12章 通用權(quán)限設(shè)計(jì),springcloud,vue.js,spring cloud,前端

可以在vue的攔截器中,針對(duì)401返回碼做判斷,如果是401,就跳到登錄頁面

將業(yè)務(wù)場(chǎng)景變成程序代碼

需求分析:最終要做成什么樣子,如何使用這個(gè)功能。

功能點(diǎn)拆分:要實(shí)現(xiàn)這個(gè)需求,都有哪些功能點(diǎn)。

代碼編寫

團(tuán)隊(duì)內(nèi)部評(píng)審?fù)ㄟ^后,為每個(gè)功能點(diǎn)評(píng)優(yōu)先級(jí),并估工時(shí)。

每天早上開展例會(huì),每個(gè)人花幾分鐘的時(shí)間回答3個(gè)問題:

1.昨天做了哪些內(nèi)容;

2.有沒有遇到什么問題;

3.今天準(zhǔn)備做哪些內(nèi)容。

有問題一定要反饋出來,可以是遇到新技術(shù)了,或是功能點(diǎn)比想象中復(fù)雜,工時(shí)估少了等等。文章來源地址http://www.zghlxwxcb.cn/news/detail-792232.html

到了這里,關(guān)于Spring Cloud + Vue前后端分離-第12章 通用權(quán)限設(shè)計(jì)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包