Java Web許可權管理設計及實現
阿新 • • 發佈:2019-01-10
最近在做一個許可權相關的功能,在專案原有許可權管理上面進行擴充套件,一方面支援介面上控制到按鈕級別,後端介面沒有許可權不能進行訪問;另一個方面,對專案中應用管理模組的應用管理員授權,使其具有對其名下的應用新增使用者的許可權,而不必像原來一樣,所有的使用者都必須系統管理員進行新增。
整理了一下原有的許可權和新增的功能,對整體做一下總結。專案做的是一個灰度釋出平臺,使用spring+springMvc+mybatis,前端框架是bootstrap,許可權是使用的shiro,前端使用了一個adminLte的前端框架。
資料庫設計:
1、選單許可權:
- 使用者表(user): 儲存使用者基本資訊
- 角色表(role): 儲存系統角色資訊
- 角色-使用者關聯表(role-user):儲存角色和使用者的對應關係(n:n)
- 資源表(resource):儲存系統選單資源,包括上級選單,子選單,按鈕,按層級進行標識
- 資源-角色關聯表(resource-role):儲存資源和角色的對應關係(n:n)
- 應用表(application):儲存系統中應用資訊
- 角色-應用關聯表(role-application) :對應用關聯角色(n:n)
- 使用者-應用關聯表(user-application):將使用者和應用進行關聯,為使用者分配對應的應用許可權,比如應用管理員,研發人員,使用者等。
具體實現:
簡單記錄一下實現邏輯吧,程式碼就不貼了。 選單許可權:介面互動:
資源:角色:
分配資源:
關聯應用:
使用者:
分配角色:
應用管理:
看到網上有說按鈕許可權可以通過自定義標籤的方式解決,還沒嘗試,可行的話,再進行補充。