與運算實現許可權控制

2021-10-01 03:22:45 字數 769 閱讀 4452

與運算(「&」)計算方法:

參與運算的兩個資料,按照二進位制位進行「與運算」。

運算規則:0&0=0; 0&1=0; 1&0=0; 1&1=1;

即:兩位同時為1,則值為1。否則為0

例如:6 & 7 = 110 & 111 = 110 = 6

8 & 3 = 1000 & 11 = 0 = 0

十進位制轉化成二進位制(整數):

看圖現有許可權id父級選單 ====子選單(id是此專案系統特意設計的,不重要,主要看實現原理)

1 廣告賬戶 ==== 1 訂單概況 2 賬戶列表 4平台管理 8ad服務商

2 訂單管理 ==== 1訂單概況 2訂單列表 4新增訂單 8mid管理 16訂單編號 32客服上傳 64訂單分配

3 資料分析 ==== 1資料概況 2賬戶報表 4消耗報表

4 產品管理 ==== 1產品概況 2產品列表

5 使用者中心 ==== 1使用者管理 2使用者組管理

12 任務管理 ==== 1任務列表 2週報管理

23 財務管理 ==== 1財務概況 2財務列表

如:超級管理員的許可權模板:

其中key值1,2,3,4,5,12,23 代表父級選單id value值15、127、7、3、3、6、3是許可權閾值,子選單id與閾值做與運算,不為0,則表示有許可權,為0 表示沒許可權

如1廣告賬戶下的許可權閾值為15

1&15 = 1 & 1111 = 1 有訂單概況這個許可權

2&15 = 10 & 1111 = 10 = 2..

.以此類推

「與」和「或」運算實現許可權管理

遊戲中,常常有這樣的提示 需要完成某主線任務才開放此模組 這樣的功能如何實現。比如,玩家需要完成代號為501220的主線任務時,才會開啟戰鬥模組,需要完成代號為501221的主線任務,才開啟 模組。實現方式可以借鑑linux的許可權管理系統來實現這樣的功能。在linux中,檢視這個檔案的所有者的許可...

基於位運算的許可權控制

在linux檔案系統中,乙個使用者對檔案或目錄所擁有的許可權分為三種 可讀 可寫 和 可執行 分別用 1 2 和 4 來表示,它們之間可以任意組合 有 可讀 可寫 許可權就用 3 來表示 1 2 3 有 可讀 可執行 許可權就用5來表示 1 4 5 三種許可權全部擁有就用 7 表示 1 2 4 7 ...

spring boot註解實現許可權控制

target elementtype.method retention retentionpolicy.runtime documented public inte ce rolecheck service public class rolecheckinterceptor implements h...