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   类中定义接口编码

  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 校验接口访问权限

  1. InterfaceRuleDto interfaceRuleDto = InterfaceUtil.getInterfaceRuleDto(request, InterfaceEnum.blacklist_list);
  2. if(interfaceRuleDto==null){
  3. return Result.error("您没有该接口的权限!");
  4. }

5.2 接口权限规则注入

方案一:

查询器处理

  1. CriteriaQuery cq = new CriteriaQuery(TsBlackListEntity.class, dataGrid);
  2. nterfaceUtil.installCriteriaQuery(cq, interfaceRuleDto, InterfaceEnum.blacklist_list);

方案二:

Sql和hql 处理

  1. String qlStr = InterfaceUtil.getQL(interfaceRuleDto, InterfaceEnum.blacklist_list);

把组装的qlStr 追加到查询语句中

6. 接口测试

 
  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. public static JSONObject getBlackList(String token){
  9. String url = "http://localhost:8888/jeecg-bpm/rest/tsBlackListController";
  10. JSONObject resp= JwtHttpUtil.httpRequest(url, "GET", null,token);
  11. return resp;
  12. }
  13. public static void main(String[] args) {
  14. //接口角色授权的用户账号密码
  15. String token = getToken("interfaceuser","123456");
  16. //获取黑名单列表
  17. System.out.println("======获取黑名单列表======="+getBlackList(token));
  18. }

【JEECG技术文档】JEECG 接口权限开发及配置使用说明的更多相关文章

  1. 【JEECG技术文档】数据权限自定义SQL表达式用法说明

    功能介绍   数据规则通过配置自定义sql来实现数据权限的控制,自定义SQL支持表达式取值 其中自定义sql 条件中字段的名称和数据库表的字段名保持一致. 角色授权 用户角色授权,权限测试不要用adm ...

  2. 【JEECG技术文档】Jeecg高级查询器

    1. 背景 对于用户来讲查询功能按易用性分三个层次: 1)最简单查询操作是一个输入框,全文检索,如百度,后台实现技术使用搜索引擎,需要设计和建立索引,技术较为复杂,适用于文档和信息数据库检索,但是结果 ...

  3. 【JEECG技术文档】JEECG部门管理员操作手册

    功能介绍 使用部门管理员设置需要完成以下步骤: 1. 在“部门管理员设置”菜单配置权限以及分配管理员. 2. 在“部门角色管理”菜单配置角色,以及权限. 3. 在“部门用户角色授权”菜单分配角色到哪个 ...

  4. Xamarin技术文档------VS多平台开发

    此技术业余时间研究,仅供大家学习参考,不涉及深入研究,有一定开发基础的人员,应该都能较快上手. 一.简介 Xamarin始创于2011年,旨在使移动开发变得难以置信地迅捷和简单.Xamarin的产品简 ...

  5. onlyoffice文档协作的权限开发,利用casbin和golang语言

    登录用户,对于已经进行了权限设置的文档,将根据权限数据库,比对用户名,当与用户有关时,就显示相对应的权限,当都与登录用户无关时,则显示拒绝访问: 对于未登录用户,已经设置了权限的文档,都将显示拒绝访问 ...

  6. 【JEECG技术文档】JEECG平台对外接口JWT应用文档V3.7.2

    一. 接口方式 接口调用采用http协议,rest请求方式: 二. 接口安全 接口安全采用Json web token (JWT)机制,基于token的鉴权机制. 1. 机制说明 基于token的鉴权 ...

  7. 【JEECG技术文档】JEECG online 表单填值规则使用说明

    1. 功能介绍 JEECG online规则值自动生成功能 为实现online表单数据初始化功能. 为实现图中红框字段初始化功能,需要完成下面4步操作: 1)编写规则实现类 2) 配置填值规则 3)o ...

  8. 【JEECG技术文档】JEECG在线聊天插件功能集成文档

    原文地址:http://jeecg.iteye.com/blog/2320670 JEECG在线聊天插件功能集成文档 前提: 采用jeecg_3.6.3版本以上(Maven工程) 插件项目: 在线聊天 ...

  9. 【JEECG技术文档】online自定义模板的使用

    一. 业务背景 客户需要快速开发一个信息采集的功能模块,并使用已规划好的页面,实现个性化页面展示,使用标准左右布局的Table或DIV风格的页面表现力不强,不能满足客户的个性化页面需要 二. 需求 1 ...

随机推荐

  1. uoj#158. 【清华集训2015】静态仙人掌

    http://uoj.ac/problem/158 预处理dfs序,询问转为区间1的个数,用可持久化bitset预处理出所有可能的修改对应哪些位置,然后用一个bitset维护当前每个点的状态,修改时可 ...

  2. Hadoop概念学习系列之Hadoop新手学习指导之入门需知(二十)

    不多说,直接上干货! 零基础学习hadoop,没有想象的那么困难,也没有想象的那么容易.从一开始什么都不懂,到能够搭建集群,开发.整个过程,只要有Linux基础,虚拟机化和java基础,其实hadoo ...

  3. 堆叠箱子(基础dp)

    P1086 时间限制: 1 Sec  内存限制: 128 MB提交: 38  解决: 27[提交][状态][讨论版][命题人:外部导入] 题目描述 现有N种箱子,每种箱子高度H_i,数量C_i.现选取 ...

  4. 学习笔记之DevOps

    DevOps - Wikipedia https://en.wikipedia.org/wiki/DevOps DevOps (a clipped compound of "developm ...

  5. 学习笔记之1001 Inventions That Changed the World

    1001 Inventions That Changed the World: Jack Challoner: 9780764161360: Amazon.com: Books https://www ...

  6. host文件的工作原理及应用

    host文件的工作原理及应用 Hosts文件是一个用于存储计算机网络中节点信息的文件,它可以将主机名映射到相应的IP地址,实现DNS的功能,它可以由计算机的用户进行控制. 一.Hosts文件基本介绍 ...

  7. centos7安装zabbix4.2

    附zabbixdocker镜像地址 https://hub.docker.com/u/zabbix/ zabbix官方文档 https://www.zabbix.com/cn/download 1.关 ...

  8. Zabbix系统中的历史数据和趋势数据

    原文:http://blog.chinaunix.net/uid-9411004-id-4139807.html 或许读者还记得,我们在介绍如何创建一个监控项目时,我们介绍过在“配置项目”表单页面上有 ...

  9. 使用 keepalived 设置虚拟 IP 环境(转载)

    使用 keepalived 设置虚拟 IP 环境 原文地址:https://blog.csdn.net/kongxx/article/details/73173762 使用 keepalived 设置 ...

  10. CentOS6系统防火墙开启、关闭、查看状态(转载)

    原文:https://blog.csdn.net/aaron_80726/article/details/79027760 注意:要进入到~目录 也就是家目录下才能查看防火墙 进入家目录:cd ~ 关 ...