【JEECG技術文檔】JEECG 接口權限開發及配置使用說明


1.功能介紹

 

通過接口配置實現,對接口的訪問權限控制和數據權限控制,接口時REST接口,接口權限認證機制使用Json web token (JWT)

接口權限調用流程:

    (1)通過接口用戶的用戶名密碼,調用鑒權token接口獲取接口用戶的token

             該token,2個小時內有效

    (2)把獲取的token作為參數,調用接口的時候,會根據token去鑒權

    (3)鑒權通過,接口會根據接口定義的編碼,檢驗是否有訪問權限

            有則可以繼續訪問,無則提示訪問受限

    (4)有訪問權限,則獲取接口的數據權限規則,根據授權的數據權限規則返回需要的數據

 

     實現一個新的接口,無需關注token的鑒權機制,需要實現以下步驟:

    (1)開發一個rest接口

    (2)枚舉類InterfaceEnum中定義接口編碼

   (3)調用InterfaceUtil工具類getInterfaceRuleDto獲取接口權限,驗證是否有訪問權限,並獲取數據權限

   (4)根據獲取的數據權限,組裝查詢條件返回接口數據

 

2. 權限接口定義

 

開發一個接口rest接口,

public enum InterfaceEnum   類中定義接口編碼

 

[java]  view plain  copy
 
  1. blacklist_list("blacklist_list", "黑名單分頁查詢", "/rest/tsBlackListController", "GET", 1)  
  2. blacklist_list 為接口編碼  

 

 

3. 接口管理

3.1  配置接口權限,

    接口權限管理--接口權限錄入,

 

  

  接口添加:

 

 

說明:

 

  •     接口權限編碼:該編碼比較重要,每個接口一個編碼,不能重復。該編碼由開發者制定(見接口權限開發,接口編碼定義)
  •     接口權限名稱:定義名稱
  •     接口權限等級:一級權限,下級權限區分
  •     父級接口:上下級關系維護(父子關系)
  •     接口權限地址:接口請求地址
  •  請求方式:GET、POST、PUT、DELETE
  •     接口權限排序:樹形列表展示的順序

 

    以上信息:接口權限編碼字段比較重要,其他的字段與權限控制無關,只做說明使用

 

 

3.2 增加數據規則權限

 

    

 

 

 

4. 創建接口角色

 

4.1 創建接口角色,進行角色授權,然后分配角色給接口用戶

      接口權限---接口角色管理   創建接口角色

 

 

5. 接口開發實現

 

接口中增加業務邏輯:

5.1 校驗接口訪問權限

 

 

[java]  view plain  copy
 
  1. InterfaceRuleDto interfaceRuleDto = InterfaceUtil.getInterfaceRuleDto(request, InterfaceEnum.blacklist_list);  
  2.         if(interfaceRuleDto==null){  
  3.             return Result.error("您沒有該接口的權限!");  
  4.         }  

 

5.2 接口權限規則注入

 

     方案一:

     查詢器處理

 

 

[java]  view plain  copy
 
  1. CriteriaQuery cq = new CriteriaQuery(TsBlackListEntity.class, dataGrid);  
  2. nterfaceUtil.installCriteriaQuery(cq, interfaceRuleDto, InterfaceEnum.blacklist_list);  

 

    方案二:

    Sql和hql 處理

 

 

[java]  view plain  copy
 
  1. String qlStr = InterfaceUtil.getQL(interfaceRuleDto, InterfaceEnum.blacklist_list);  

 

  把組裝的qlStr 追加到查詢語句中

 

6. 接口測試

 

 

[java]  view plain  copy
 
  1. //獲取token  
  2. public static String getToken(String userName,String password){  
  3.         String url = "http://localhost:8888/jeecg-bpm/rest/tokens?username="+userName+"&password="+password;  
  4.         String token= JwtHttpUtil.httpRequest(url, "POST", null);  
  5.         return token;  
  6.     }  
  7.       
  8.       
  9.     //獲取黑名單列表  
  10.     public static JSONObject getBlackList(String token){  
  11.         String url = "http://localhost:8888/jeecg-bpm/rest/tsBlackListController";  
  12.         JSONObject resp= JwtHttpUtil.httpRequest(url, "GET", null,token);  
  13.         return resp;  
  14.     }  
  15.   
  16.   
  17. public static void main(String[] args) {  
  18.        //接口角色授權的用戶賬號密碼  
  19.         String token = getToken("interfaceuser","123456");  
  20.         //獲取黑名單列表  
  21.         System.out.println("======獲取黑名單列表======="+getBlackList(token));  
  22.     }  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM