【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 类中定义接口编码
- blacklist_list("blacklist_list", "黑名单分页查询", "/rest/tsBlackListController", "GET", 1)
- blacklist_list 为接口编码
3. 接口管理
3.1 配置接口权限,
接口权限管理--接口权限录入,
接口添加:
说明:
- 接口权限编码:该编码比较重要,每个接口一个编码,不能重复。该编码由开发者制定(见接口权限开发,接口编码定义)
- 接口权限名称:定义名称
- 接口权限等级:一级权限,下级权限区分
- 父级接口:上下级关系维护(父子关系)
- 接口权限地址:接口请求地址
- 请求方式:GET、POST、PUT、DELETE
- 接口权限排序:树形列表展示的顺序
以上信息:接口权限编码字段比较重要,其他的字段与权限控制无关,只做说明使用
3.2 增加数据规则权限
4. 创建接口角色
4.1 创建接口角色,进行角色授权,然后分配角色给接口用户
接口权限---接口角色管理 创建接口角色
5. 接口开发实现
接口中增加业务逻辑:
5.1 校验接口访问权限
- InterfaceRuleDto interfaceRuleDto = InterfaceUtil.getInterfaceRuleDto(request, InterfaceEnum.blacklist_list);
- if(interfaceRuleDto==null){
- return Result.error("您没有该接口的权限!");
- }
5.2 接口权限规则注入
方案一:
查询器处理
- CriteriaQuery cq = new CriteriaQuery(TsBlackListEntity.class, dataGrid);
- nterfaceUtil.installCriteriaQuery(cq, interfaceRuleDto, InterfaceEnum.blacklist_list);
方案二:
Sql和hql 处理
- String qlStr = InterfaceUtil.getQL(interfaceRuleDto, InterfaceEnum.blacklist_list);
把组装的qlStr 追加到查询语句中
6. 接口测试
- //获取token
- public static String getToken(String userName,String password){
- String url = "http://localhost:8888/jeecg-bpm/rest/tokens?username="+userName+"&password="+password;
- String token= JwtHttpUtil.httpRequest(url, "POST", null);
- return token;
- }
- //获取黑名单列表
- public static JSONObject getBlackList(String token){
- String url = "http://localhost:8888/jeecg-bpm/rest/tsBlackListController";
- JSONObject resp= JwtHttpUtil.httpRequest(url, "GET", null,token);
- return resp;
- }
- public static void main(String[] args) {
- //接口角色授权的用户账号密码
- String token = getToken("interfaceuser","123456");
- //获取黑名单列表
- System.out.println("======获取黑名单列表======="+getBlackList(token));
- }
【JEECG技术文档】JEECG 接口权限开发及配置使用说明的更多相关文章
- 【JEECG技术文档】数据权限自定义SQL表达式用法说明
功能介绍 数据规则通过配置自定义sql来实现数据权限的控制,自定义SQL支持表达式取值 其中自定义sql 条件中字段的名称和数据库表的字段名保持一致. 角色授权 用户角色授权,权限测试不要用adm ...
- 【JEECG技术文档】Jeecg高级查询器
1. 背景 对于用户来讲查询功能按易用性分三个层次: 1)最简单查询操作是一个输入框,全文检索,如百度,后台实现技术使用搜索引擎,需要设计和建立索引,技术较为复杂,适用于文档和信息数据库检索,但是结果 ...
- 【JEECG技术文档】JEECG部门管理员操作手册
功能介绍 使用部门管理员设置需要完成以下步骤: 1. 在“部门管理员设置”菜单配置权限以及分配管理员. 2. 在“部门角色管理”菜单配置角色,以及权限. 3. 在“部门用户角色授权”菜单分配角色到哪个 ...
- Xamarin技术文档------VS多平台开发
此技术业余时间研究,仅供大家学习参考,不涉及深入研究,有一定开发基础的人员,应该都能较快上手. 一.简介 Xamarin始创于2011年,旨在使移动开发变得难以置信地迅捷和简单.Xamarin的产品简 ...
- onlyoffice文档协作的权限开发,利用casbin和golang语言
登录用户,对于已经进行了权限设置的文档,将根据权限数据库,比对用户名,当与用户有关时,就显示相对应的权限,当都与登录用户无关时,则显示拒绝访问: 对于未登录用户,已经设置了权限的文档,都将显示拒绝访问 ...
- 【JEECG技术文档】JEECG平台对外接口JWT应用文档V3.7.2
一. 接口方式 接口调用采用http协议,rest请求方式: 二. 接口安全 接口安全采用Json web token (JWT)机制,基于token的鉴权机制. 1. 机制说明 基于token的鉴权 ...
- 【JEECG技术文档】JEECG online 表单填值规则使用说明
1. 功能介绍 JEECG online规则值自动生成功能 为实现online表单数据初始化功能. 为实现图中红框字段初始化功能,需要完成下面4步操作: 1)编写规则实现类 2) 配置填值规则 3)o ...
- 【JEECG技术文档】JEECG在线聊天插件功能集成文档
原文地址:http://jeecg.iteye.com/blog/2320670 JEECG在线聊天插件功能集成文档 前提: 采用jeecg_3.6.3版本以上(Maven工程) 插件项目: 在线聊天 ...
- 【JEECG技术文档】online自定义模板的使用
一. 业务背景 客户需要快速开发一个信息采集的功能模块,并使用已规划好的页面,实现个性化页面展示,使用标准左右布局的Table或DIV风格的页面表现力不强,不能满足客户的个性化页面需要 二. 需求 1 ...
随机推荐
- 《Java并发编程实战》笔记-取消与关闭
1,中断是实现取消的最合理方式.2,对中断操作的正确理解是:它并不会真正地中断一个正在运行的线程,而只是发出中断请求,然后由线程在下一个合适的时刻中断自己.3,区分任务和线程对中断的反应是很重要的4, ...
- 学习笔记之HTML 教程 | 菜鸟教程
HTML 教程 | 菜鸟教程 http://www.runoob.com/html/html-tutorial.html 菜鸟教程在线编辑器 http://www.runoob.com/try/try ...
- 3d图像坐标轴及css3属性的讲解
3d立体坐标轴 如有不知道各种插件的怎么办? 网上查,百度 1.css选择器: 1.id 2.class 3.标签 4.子代 5.后代 6.交集 7.并级 8.通配符 9.结构 10.伪类 11.属性 ...
- 搭建好lamp,部署owncloud。
先上传两个文件 上传到root目录 上传到opt目录下 #mkdir /opt/dvd1 #mount /dev/sr0 /opt/dvd1 #cd /etc/yum.repos.d/ #vi dvd ...
- centos7 firewall-cmd 理解多区域配置中的 firewalld 防火墙
原文:https://www.linuxidc.com/Linux/2017-11/148795.htm 现在的新闻里充斥着服务器被攻击和数据失窃事件.对于一个阅读过安全公告博客的人来说,通过访问错误 ...
- [UE4]复制引起的重复对象
一.在角色的BeginPlay事件中,在角色正前方1米到2米处生成一立方体. 二.开启2个玩家,第一个创建是服务器端,第二个窗口是客户端.可以看到:服务器端窗口创建了2个灰色的立方体,客户端却创建了4 ...
- Spring MVC post请求乱码解决
在页面发送POST请求,将中文传递给controller,在编译平台发生乱码,导致存储到数据库中的数据也乱码 解决办法: 在web.xml中添加一个编码过滤器 <filter> <f ...
- day25类的组合多态封装
类的组合多态与封装类的组合 1. 什么是组合 组合指的是某一个对象拥有一个属性,该属性的值是另外一个类的对象 2. 为何要用组合 通过为某一个对象添加属性(属性的值是另外一个类的对象)的方式,可以 ...
- Linux 文件,目录,压缩,解压缩操作
2018/11/20 1.find -name 'pom.xml' | xargs perl -pi -e 's|oldString|newString|g' (批量替换) ( 命令行中使用Perl ...
- AJAX发送 PUT和DELETE请求参数传递注意点,了解一下
ajax发送put 和 delete 请求时,需要传递参数,如果参数在url地址栏上,则可以正常使用, 如果在 data:中需要传递参数,(浏览器会使用表单提交的方式进行提交) 则需要注意此时应作如下 ...