天鸟技术中台-建设过程-日常经验2:通用参数和数据权限控制
技术中台,服务于 无数个 独立的项目。
每个项目,单独对应1个App和appId。
查询和创建等接口,必须提供appId,区分是哪个app的数据。
而技术中台的平台管理端,是管理所有的数据,appId是可选的。
普通项目的管理端,只管理自己的数据,查询数据的时候appId是固定的,是必填的。
这里面有个经验,getById,removeById,通常写法,只需要id 1个参数。
这涉及到 数据权限控制问题,随便传入1个id,把其他项目的数据删了咋办?
所以,这2个方法,也必须带上appId。
一个项目,如果有数据权限,remove和get的时候,必须带上userId。
但是,技术中台这样的项目,去管理 普通项目的权限控制,有很大难度,每个项目的数据权限控制机制不同,很难有通用实现。
所以,数据权限控制 交给项目自己。
技术中台,控制app层面的 数据权限控制。
具体项目-删除1篇文字-伪代码
|
以上综述:
1)、userId,具体项目自己的数据权限控制。
2)、appId,技术中台 不同项目之间的数据权限隔离。
3)、还有最常见的token校验,接口调用 需要权限控制。
调用接口之前,用appId、apiCode、password之类的账号密码,获得token。
有token才有接口调用权限,调用时,技术平台还需要检查 该token对应的 app,有哪些 API的权限。
再做1点补充:
4)、remove方法,可能还需要记录 当时的操作用户。
这个 技术中台,可以统一封装。也可以只提供普通的 API,具体项目 自己填写相关字段。
5)、再考虑到,1个接口的2类 业务方
getById,技术中台的管理端,只需要id 一个参数就行。
具体项目,appId必传,必须校验数据权限。
最终落实到 接口,可以放在同1个Service,也可以放在2个Service。
比如:
面向 具体项目的接口
public interface UserService{
void removeById(Integer appId,Integer userId);
}
面向内部技术中台管理端的接口
public interface TpUserService extends UserService{
void removeById(Integer userId);
}
结论:
通用参数:appId、token(后期加上)
业务参数:userId、User
数据权限控制:技术中台appId、具体项目userId
接口权限控制:token,先提供单独登录接口 login(appId, secret);
天鸟技术/FansUnion/雷哥
2019年11月16日
北京
天鸟技术中台-建设过程-日常经验2:通用参数和数据权限控制相关推荐
- 天鸟技术中台-建设过程-日常经验7:核心core业务、非核心core业务、通用基础业务
在这篇文章" 天鸟技术中台-建设过程-日常经验6:一个系统总是存在,core核心业务和not-core非核心业务 " 中,首次明确提出了,一个系统存在core和非core. 以之前 ...
- 天鸟技术中台-建设过程-日常经验1:标准、规范、约定、极简、可读、单一职责、自动化
1.标准.规范.约定.极简.可读 技术中台,以模块来划分,不同模块,代码总体一致. 因为,中台本来就是要解决类似问题. 不同模型,主要还是CRUD,第1阶段,只考虑not core非核心业务. 核心业 ...
- 天鸟技术中台-建设过程-日常经验3:权限控制的进一步思考和细化
初步方案:技术中台管理接口和 对外提供的接口,统一起来. 1.操作一条数据,必须带上appId. 2.查询,必须带上appId or 不带 appId 现在的接口分2大类,技术中台管理端.(既然存在 ...
- 天鸟技术中台-建设过程-日常经验5:MybatisPlus工具代码封装,between-and封装
技术中台,目前主要就是解决 重复CRUD问题. 数据库底层用MySql,DB框架用 MybatisPlus(今后简称MP). MP封装,分2大类,一种是 纯工具方法,一种是 ServiceImpl类的 ...
- 天鸟技术中台-建设过程-日常经验6:一个系统总是存在,core核心业务和not-core非核心业务
一个系统总是 存在,core和非core,核心业务,非核心业务. 1.电商购物:商品-购物-下单,核心业务. 地址.短信通知.FAQ问答.平台公告等,非核心业务. 2.P2P网贷:注册登录.充值.投标 ...
- 技术中台构建思路及进展_半年中台实践思考:落地中台,贵在其神,活用其形...
今年 9 月份,我参加云栖大会,了解了中台发展的现状和趋势,并和业界同行进行了深入交流.为此,我写了自己第一篇关于中台的文章<向左还是向右?聊聊中台建设中的那些纠结事>.该文章首发于 In ...
- 京东服务技术中台:你必须知道的全流程建设方法论!
大家下午好,我是京东研发总监--贾乐.今天我分享的主题是京东服务技术中台探索与实践,分别从三个方面来讲: 1.为何我们要做中台? 2.京东服务技术中台建设思路: 3.关于中台建设的个人思考. 为何做中 ...
- 建设数据中台之前,建议先看这份企业数据能力测评 | 大咖说中台
作者 | 耿立超 来源 | <大数据平台架构与原型实现:数据中台建设实战> "我的企业目前在数据应用上处于什么水平?接下来应该朝哪个方向努力?"本文试图帮助企业决策者和 ...
- 借助第一性原理开启中台建设
要从第一性原理而不是类比中推理,我认为这一点很重要.在日常生活中,我们总是通过类比来推理.我们要这样做是因为这类似于我们已经在做的另一件事,或者这类似于其他人正在做的事.第一性原理意味着你抛弃一切,直 ...
最新文章
- 数据为王的时代,如何用图谱挖掘商业数据背后的宝藏?
- centos7重新加载服务的命令_阿粉手把手教你在 CentOS7 下搭建 Jenkins
- Spring中经典的9种设计模式,一定要记牢,Java基础教程pdf百度云
- Erlang转JAVA,将Erlang UTF-8编码的字符串转换为java.lang.String
- mysql库存自动更新_秒杀库存需不需要实时更新到mysql?
- HDU2966 In case of failure(浅谈k-d tree)
- [Robot Framework] Jenkins上调用Rebot命令时执行报错不往下执行其他命令
- 干货|详解最新语音识别框架 深度全序列卷积神经网络
- 基于微信公众号的图书借阅管理系统设计与实现
- :root选择器的妙用【2021.11.14】
- 线性表表长是否要算入头结点
- 联通路由器设置FTP服务器,做家庭储存云盘
- 巫师编程语言“咒语” 设想
- 看着很滑稽,但现实又何尝不是这样呢?
- 有关JAVA考试中数据库的题_全国2018年4月自考互联网数据库考试真题
- os.path.abspath() 和 os.path.realpath() 区别
- 山东春考计算机专业本科学校排名,山东春考大学本科排名及名单
- 如何生成一个安卓和苹果手机都能识别的二维码
- 多级反馈队列调度算法(c++)
- 5月26日来IGS大会腾讯云游戏新文娱分论坛和TcaplusDB约会吧!