Android 鋸齒數組用於RBAC權限管理

1、原理

java中提供鋸齒數據,某些時候特別有用,好比用group映射activity編號。在客戶端,咱們定義角色組,而後給每一個組分配角色id;java

2、關於鋸齒數組

此外涉及到http數據仍是json數據保存護傳輸。數據庫

public static void main(String[] args)
{
  //使用在json數據轉換中  
   int[][] groups = new int[3][];
   groups[0] = new int[]{1,3,4,5};
   groups[1] = new int[]{6,2};
   groups[2] = new int[]{1,3,5,6,8};
   
   Gson gson = new Gson();//使用google開源工具類 Gson.jar
   String json = gson.toJson(groups);
    
   System.out.println(json);  
}

3、構建權限模型

對於每一個用戶的權限,基本上是RBAC形式,根據用戶角色判斷頁面是否能夠訪問。json

User -> Group -> Role數組

一、RBAC簡介

RBAC是Role-Based Access Control的首字母,譯成中文即基於角色的權限訪問控制,說白了也就是用戶經過角色與權限進行關聯[其架構靈感來源於操做系統的GBAC(GROUP-Based Access Control)的權限管理控制]。簡單的來講,一個用戶能夠擁有若干角色,每個角色擁有若干權限。這樣,就構形成「用戶-角色-權限」的受權模型。在這種模型中,用戶與角色之間,角色與權限之間,通常者是多對多的關係。其對應關係以下:安全

在許多的實際應用中,系統不僅是須要用戶完成簡單的註冊,還須要對不一樣級別的用戶對不一樣資源的訪問具備不一樣的操做權限。且在企業開發中,權限管理系統也成了重複開發效率最高的一個模塊之一。而在多套系統中,對應的權限管理只能知足自身系統的管理須要,不管是在數據庫設計、權限訪問和權限管理機制方式上均可能不一樣,這種不致性也就存在以下的憋端:服務器

  • 維護多套系統,重複造輪子,時間沒用在刀刃上
  • 用戶管理、組織機制等數據重複維護,數據的完整性、一致性很可貴到保障
  • 權限系統設計不一樣,概念理解不一樣,及相應技術差別,系統之間集成存在問題,單點登陸難度大,也複雜的企業系統帶來困難

RBAC是基於不斷實踐以後,提出的一個比較成熟的訪問控制方案。實踐代表,採用基於RBAC模型的權限管理系統具備如下優點:架構

  • 因爲角色、權限之間的變化比角色、用戶關係之間的變化相對要慢得多,減少了受權管理的複雜性,下降管理開銷;
  • 並且可以靈活地支持應用系統的安全策略,並對應用系統的變化有很大的伸縮性;
  • 在操做上,權限分配直觀、容易理解,便於使用;分級權限適合分層的用戶級形式;
  • 重用性強。

二、步驟

①咱們只須要給用戶分配角色數據庫設計

setUserGroup(Group);工具

②給每一個頁面一個角色idgoogle

訪問的時候從角色組取出id,比較頁面id是否包含在角色組中,若是包含則容許訪問。

 

這樣咱們能夠避免每次頁面跳轉時訪問服務器。

相關文章
相關標籤/搜索