權限控制設計思路

      最近的一個項目做了一個權限的控制,大概來說下思路:權限控制具體的目的是不僅要控制頁面,還要可以控制到頁面上的某一個按鈕是否有權限操作或頁面的某一個模塊是否可以顯示或是否有權限寫等等

 

      數據庫表設計:管理員,角色,頁面,模塊

 

(1)、模塊是屬於頁面,模塊可以是頁面上的一個按鈕或某一塊內容

(2)、頁面分爲一級頁面和二級頁面,一級頁面作爲導航頁面,二級頁面是導航下的子頁面

(3)、角色可以根據需要來選擇頁面和頁面上的模塊的權限,讀,寫,無讀無寫

(4)、管理員來選擇角色,角色之間的權限可以合併,以大的權限爲準

 

將權限在spring容器啓動的時候加載進緩存,在更新管理員角色或修改角色權限時刷新緩存。

 

      當然把權限放入緩存的時候是已經根據管理員來區分好了具體擁有的權限, 在需要的時候只需要取就可以了。

放入Spring緩存中的權限是一個Map<String,Map<String,String>>,外面的Map的key是管理員的id,value即Map<String,String>是具體的頁面和模塊的讀寫權限

 

      用struts2的攔截器來控制所擁有的頁面權限,然後在具體的action中從spring緩存中獲取該頁面所擁有的模塊權限。

 

      初始化權限,當管理員登陸時,由struts2的攔截器來初始化所擁有的導航頁面權限,進入到具體的頁面時,從spring的緩存中去該管理員該頁面的權限,然後進行權限控制

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章