1. 程式人生 > >Java web 後臺選單許可權驗證方法

Java web 後臺選單許可權驗證方法

首先有個選單表,和許可權表,使用者表,

使用者表id 關聯許可權id 許可權表中要有個 許可權欄位

下面開始說許可權欄位中的資料存什麼:

這裡我們運用BitInteger這個類

1.在建立角色許可權時首先運用 BitInteger中setBit( int);方法將所有選單id依次set進建立的BItInteger中

並儲存到我們的許可權表中,

2.在查詢/判斷許可權時用選單id依次和許可權欄位用BitInteger中的testBit(int)進行對比 返回true則有權訪問,false則無權訪問;

注:選單id一定要是數字

以上時大概流程,和思路。

    public static void main(String[] args) {         String [] strArray = {"20","2","300","4","5","6","12"};         BigInteger bit  = new BigInteger("0");         for(int i = 0;i<strArray.length;i++){             System.out.println(bit);             bit = bit.setBit(Integer.parseInt(strArray[i]));         }         System.out.println(bit);         boolean ok = bit.testBit(5);         System.out.println(ok);     }

輸出:

0 1048576 1048580 2037035976334486086268445688409378161051468393665936250636140449354381299763336706184445956 2037035976334486086268445688409378161051468393665936250636140449354381299763336706184445972 2037035976334486086268445688409378161051468393665936250636140449354381299763336706184446004 2037035976334486086268445688409378161051468393665936250636140449354381299763336706184446068 2037035976334486086268445688409378161051468393665936250636140449354381299763336706184450164 true

以上時測試類方法,下面說下選單許可權的詳細思路,

登陸成功後,進入讀取選單,1

1.將表中所有選單讀出放到listAllMenu中,然後建立一個新List用於存放有許可權的選單

2查詢出當前使用者的許可權中的許可權欄位 role,

3遍歷listAllMenu 讀取選單id然後和許可權role用BitInteger中testBit()方法進行對比將返回true的物件放入新建的list中

(注:由於選單涉及到父級選單/子選單,所以最好將對比打包成一個遞迴方法)

最後將新建立的list返回前臺;

各位程式設計之路重在理解和動手所以就不粘詳細程式碼了

這只不過是本人最基本的理解肯定有漏洞和不足指出,

在此發表的是實際工作中所遇到的功能思路,和一些異常,有些可能不堪一提,但卻是是絆住我的問題都會記錄在這裡,也就當個筆記吧.