公司文档库 公司文档库
首页
  • 操作手册
  • 安装部署
  • 操作手册
  • 安装部署
  • 操作手册
  • 安装部署
  • 配置平台API
  • 数据库管理
  • 运维常识
  • 工具包管理
  • BUG反馈
  • 优化建议
  • 经验分享
  • 关于我们
  • 简体中文
  • English
  • 日本語
  • 한국어

tentai

腾泰文档管理系统
首页
  • 操作手册
  • 安装部署
  • 操作手册
  • 安装部署
  • 操作手册
  • 安装部署
  • 配置平台API
  • 数据库管理
  • 运维常识
  • 工具包管理
  • BUG反馈
  • 优化建议
  • 经验分享
  • 关于我们
  • 简体中文
  • English
  • 日本語
  • 한국어
  • 操作手册

    • 数据源管理

      • 数据源
      • 驱动列表
      • 链接服务器
      • 数据集
      • 中间件
        • 概念
          • 何为中间件
          • 它有何优势
          • 面向人群
          • 基础知识
        • 1 导包/安装流程
          • 1.1 注意事项
          • 1.2 更新问题
        • 2 使用前需知
        • 3 开始配置
          • 3.1 基础配置
          • 3.1.1 查询参数
          • 3.1.2 授权认证
          • 3.1.3 Http请求头
          • 3.1.4 Http请求体
          • 3.1.5 响应结果
          • 3.1.6 HTTP请求类型
          • 3.2 数据集中间件
          • 3.2.1 基础信息
          • 3.2.2 查询参数
          • 3.2.3 响应结果
          • 4.3 三方接口中间件
          • 4.3.1 基础信息
          • 4.3.2 关于鉴权
          • 4.3.3 查询参数
          • 4.3.4 响应结果
          • 4.3.5 授权认证
          • 4.4 自定义代码
          • 4.4.1 基础信息
          • 4.4.2 特性
          • 4.4.3 数据源
          • 4.4.4 自定义代码
          • 4.4.5 查询参数
          • 4.4.6 响应结果
          • 4.5 数据加密
          • 4.5.1 加密类型
          • 4.5.2 解密类型
          • 4.5.3 加密/解密秘钥
          • 4.5.4 特殊加密RSA
          • 4.6 数据加密(调用三方应用)
          • 4.6.1 加密类型
          • 4.6.2 解密类型
          • 4.6.3 加密/解密秘钥
          • 4.6.4 特殊加密RSA
          • 4.7 调用记录
          • 4.7.1 主要作用
          • 4.8 黑名单
          • 4.8.1 主要作用
          • 4.8.2 如何关闭
          • 4.9 调用频率
          • 4.9.1 频率等级
          • 4.9.2 响应耗时
    • SPC管理

    • 考核管理

    • 配置平台

    • MSA管理

    • 调度管理

  • 环境部署

  • 桌面端
  • 操作手册
  • 数据源管理
tentai
2023-12-21
目录

中间件

# 概念

# 何为中间件

​ 中间件做为自己暴露给别人调用,或者调用第三方应用的一个中间层,在系统中称之为【接口中间件】,我们平台的中间件你可以把它理解为postman的变体,它除了具体postman的一些基本功能外,还可以实现自定义代码编写,另外还支持庞大的API可以调用.

# 它有何优势

​ 我们平台的中间件较大的压缩定制开发时间,实施人员只要具备一定的专业知识直接配置业务处理逻辑,实现自调或者被调的功能,节省了定制接口开发过程中所消耗的沟通,升级,维护,打包的复杂性和工作量。

# 面向人群

  1. 公司实施人员
  2. 开发人员
  3. 项目经理

# 基础知识

基础知识是每个使用中间件的人员必须经历的一个过程,如果想使用中间件的你没有这些基础,建议还是别用,当然啦,除了这些基础知识外,你还要分清以下三个目的.

​ 要干嘛?该干嘛?怎么做? 务必搞清楚这三点再来使用中间件.

脚本语言 学习网址
Javascript https://www.runoob.com/js/js-tutorial.html
T-SQL https://www.runoob.com/sql/sql-syntax.html
Http协议 https://developer.mozilla.org/en-US/search?q=HTTP
PostMan 必须熟悉此工具使用

# 1 导包/安装流程

中间件是平台的一个小分支,必须有平台环境才能发挥它的作用,如果你盲目的导出中间件功能菜单是没有任何意义的,整个中间件的导包流程如下;

这是融合环境(即supos系统中的操作流程),如果项目上采用我们的平台可以直接忽视这个操作流程,只需管理员给你开放中间件权限即可使用.

# 1.1 注意事项

以上导包流程有时候可能会造成以外问题,一般情况下都是正常的,不排除操作步骤有误或者配置问题无法使用中间件功能,当然你也可以到公司云盘查看相关的培训视频,目前部分视频没有做同步,后期会逐渐完善.

安装完成之后不是直接可以使用,需要在supos系统中分配权限才能使用,supos的权限分配请自己查看supos提供的系统操作文档,中间件因为有数据源的依赖,当你在写自定义代码时需要用到数据源,必须把数据源管理一起导出.

# 1.2 更新问题

每次平台有做升级,都会整体更新,更新过程中由于操作不当或者数据库结构问题造成服务启动不起来,或者报错,首先你得会看日志,具体处理方案请在公司文档库http://tentai.cn:6867上搜索关键字 [supos融合] 即可查看具体解决方案和命令行操作.

# 2 使用前需知

使用中间件我们由浅入深的学习,中间件分为三个层次,分别为【数据集,三方接口,自定义代码】,这三个层次是由浅入深排序,自定义代码类型是最复杂也是最难的,最关键的是你要搞清楚中间件它是基于什么协议?

我们的中间件基于Http协议为主,同时扩展了TCP,WebSocket,MQTT的支持,但是对于调用中间件的人来说,它其实就是一个基于Http请求的接口,即然是接口当然会存在请求/响应,参数传递,鉴权认证的机制,不过目前中间件还没有做鉴权控制,接口是对外开放的,但是处于安全性考虑有做防DDOS攻击的处理,比如我们做了限流,黑名单拦截防护措施,加密等.

# 3 开始配置

# 3.1 基础配置

基础配置是整个中间件最优先配置的一项,如果不配置基础信息的必填项,那么中间件是无法创建成功的,在基础配置中带?的图标都做了相关专业术语的描述,配置前最好鼠标放上去看看描述内容,理解之后再做配置.

在基础配置过程中,选项不同会额外追加相关配置,这些配置相互并存缺一不可,其中包括一些通信协议的基本原理,所以使用中间件配置最好具备一定的专业知识才能更快的认识它。

# 3.1.1 查询参数

查询参数做为调用第三方应用接口时才配置,一般情况下配置是没有任何意义的(即不是必填项),跟PostMan一样,中间件这里没有限制你必须配置,用法跟postman一样需要时才配置,查询参数针对的是三方应用接口是GET类型时才管用,否则无意义!而且当中间件类型选择是三方接口时才会让配置有存在的价值,否则配置等于没有配置.

# 3.1.2 授权认证

授权认证当中间件类型选择的是三方接口时且需要鉴权时配置才有效,否则跟查询参数一样配置没有意义,由于第三方应用鉴权机制不一样,中间件支持以下几种认证支持,使用前自己可以去百度搜索关键字,理解它的基本用途及概念并对它有个认识和使用场景.

每一种鉴权认证类型都与它的应用架构认证系统有关,所以在选择认证类型前需要先搞清楚对方系统认证根据那种类型来进行身份认证的,如果认证搞不清楚是无法调用三方应用接口的,这不是中间件的限制而是对方系统无法让你发起调用请求.

以下是我们中间件所支持的认证类型,并为它们加上了注解;

//不需要进行认证,直接调用三方应用接口
None:无需认证
//基于Basic认证方式
Basic:基础认证
//基于Bearer认证方式
Bearer:token认证
//基于Jwt令牌的认证方式
Jwt:jwt身份认证
//基于oauth2协议的认证方式
Oauth2:oauth2认证
//自定义的认证方式,比如我们系统,指定授权标识
Custom:自定义认证
1
2
3
4
5
6
7
8
9
10
11
12

除了无需认证的认证方式,都需要提供三方应用的账号,密码进行登录才能调用,鉴权认证的接口返回token信息由三方应用系统决定,请在配置前通过postman调通后再来中间件中进行配置,以免误导你认为中间件有异常.

第三方应用在认证时都会提供专门的认证接口,接口会告诉你是JSON参数类型还是Form表单对象形式的参数类型,所以在认证时要指明认证参数类型,其中JWT跟Oauth2认证方式还需提供签名秘钥,这些都是需要一定专业知识才能用好它的,请慎重使用.

关于Oauth2认证:

Oauth2认证类型需要指定重定向地址(即接收授权码的回调地址),我们中间件做了全自动处理,这里你可以填也可以不填.

关于JWT认证:

JWT认证类型属于一种令牌生成的规范,它有个加密过程一般很难被破解,JWT的加密算法分为HS256,HS384,HS512,RS256,RS384,RS512,另外还需要身份凭证信息(JSON格式).

身份凭证:

处于第三方应用原因,有些接口调用需要设置身份凭证才能获取access_token令牌(即先登录),因为整个过程都是中间件自动完成,身份凭证的绑定字段需要先通过PostMan调通后,把关健字段配置在这里即可,其它不需要考虑.

访问凭证:

访问凭证也就是access_token的字段,有效期是access_token有效期时间字段,且记身份凭证及访问凭证这里的配置都是绑定字段而不是具体的值.切记,一定要在postMan中调通后再到中间件中配置.

另外注意:

只要是需要鉴权的三方接口都要在基础配置中指定access_token返回的JSON格式结构,没有固定格式,三方接口是什么就是什么,但是有一点必须是JSON字符串格式,否则中间件是无法解析的,如下图;

# 3.1.3 Http请求头

什么是请求头?

请求头是对方接口在身份认证时需要获取身份信息,也可以添加自定义的一些业务属性,其实它的主要功能用来做身份认证的,你用它来做其它参数传递也不是不可以,主要还是看对方接口和系统架构而定,并不是通用的.

相关参数如下:

Host:指定服务器的主机名和端口号。
User-Agent:指定发送请求的客户端代理的信息,通常包含浏览器名称和版本号。
Accept:指定客户端能够处理的响应内容类型。
Content-Type:指定请求体中的数据类型,例如 application/json 或 application/x-www-form-urlencoded。
Content-Length:指定请求体的长度(以字节为单位)。
Authorization:指定身份验证凭据,用于访问受保护的资源。
Cookie:指定客户端发送的 Cookie 信息,用于会话跟踪。
Referer:指定当前请求的来源 URL。
If-None-Match:指定用于条件 GET 请求的实体标签,用于检查资源是否已更改。
Cache-Control:指定缓存策略,例如 no-cache、max-age 等。
Accept-Language:指定客户端偏好的语言。
Range:指定请求的字节范围,用于分段下载或断点续传。
1
2
3
4
5
6
7
8
9
10
11
12

除了这些默认的基本参数外,你也可以添加自己的请求头参数,另外还针对不同的参数类型进行动态输入控件切换,目前只支持【字符串,数字,日期时间】三种类型,一般情况下是够用了.

# 3.1.4 Http请求体

什么是请求体?

请求体是POST请求有参数情况下必须配置的一项功能,它是Form表单提交类型,也支持json,文本,js,xml,html等类型,大多数情况下是json或者form表单形式做参数传递.

请求体分为四大类(无参数,多类型表单,基础表单,文本);

  1. 无参数

    POST请求,三方接口无需参数.

  2. 多类型表单

    POST请求,除了键值对类型字典参数外(如:[name:"test",age:20] ),还支持文件类型的提交给应用接口处理(暂时中间件不支持文件上传).

  3. 基础表单

    POST请求,全字符串类型的字典参数列表,不支持其它类型的参数传递.

  4. 文本

    POST请求,纯文本的字符串对象,支持text,json,html,xml,javascript几种格式,可以对纯文本的字符串对象类型进行选择指定,默认情况下做为json字符串对象传递给三方应用接口,为了提高用户体验,不同类型格式切换会高亮显示代码,增加了容错性.

# 3.1.5 响应结果

响应结果作用?

响应结果就是中间件最终的返回结果,它的作用就是过滤掉中间件响应结果中不需要的字段,你在响应结果配置那些字段就显示那些字段的内容,其它的字段内容是不会显示的,除非你在响应结果中把屏蔽的字段去掉或者删除所有已经屏蔽的字段.

它除了屏蔽响应结果内容,还可以对响应结果中的数据进行格式化,最常用的也就这三种类型了【日期时间,数字,字符串】,如果是字符串我觉得没有格式化的必要了吧.....

# 3.1.6 HTTP请求类型

基本包含GET,POST,PUT,DELETE,OPTIONS等,目前支持常用的GET/POST两种类型,其它的类型后面关注中间件迭代升级,请求类型的介绍参考如下;
  • GET:从服务器获取资源数据,通过URL参数传递请求参数,获得服务器响应的内容

  • POST:用于向服务器提交数据,主要用于创建、更新或处理资源。POST请求将数据放在请求体中传递,可以传递更大量和复杂的数据

  • PUT:用于更新服务器上已存在的资源

  • DELETE:用于删除服务器上的资源

  • OPTIONS:用于获取目标资源所支持的HTTP请求方法和头信息等

  • PATCH:用于对服务器上已存在的资源进行局部修改

  • CONNECT:建立与目标资源的双向连接,用于代理服务器的隧道通信

  • TRACE:回服务器收到的请求的原始报文,用于测试、诊断和性能分析

  • HEAD:类似于GET请求,但是服务器不返回资源的实际内容,只返回响应头信息

# 3.2 数据集中间件

数据集中间件类型是入门级的轻量级的应用,只要你提前在数据集管理中配置好数据集就可以在中间件中开箱即可,配置一个数据集中间件最多也就2分钟左右时间,大部分工作量还是看你写的sql是否可行,关于数据集的使用请查看 数据源管理操作手册.

这里用数据集中间件,那么必须要有数据源管理菜单下的几项功能才能完成配置,中间件不支持直接配置数据集,数据源等信息,因为这属于重复劳动工作量,对系统维护性上也不太好,专业的功能有专业的操作手册会做详细说明.

下面将讲解具体的数据录入,配置过程细节,虽然后续两种类型中间件大体上跟数据集中间件类似,但还是会把区别分开讲解,重复的就直接参考链接不再具体解说了,所有参考链接请留意文档标题导航.

# 3.2.1 基础信息

  1. 红色带*号的都是必填项

  2. 中间件地址

    中间件地址是唯一的不能重复,不能是http或者是https开头,只能是相对路径,因为中间件是基于我们系统实现的,配置中只要配置相当路径地址即可,但是必须是 / 开头,如:/api/spc/getspclist,假如你要把中间件提供给别人调用,那么就需要环境的【**域名地址+【中间件的地址】**提供调用方,非融合环境用平台的api地址即可,我们公司平台的api地址一般都会携带端口号【规则是:系统登录界面浏览器地址端口+1】,融合环境就特殊一点,直接使用融合环境的浏览器地址【域名+端口号】即可,比如我们公司融合测试环境 http://tentai.cn:9000 ,使用中间件的配置地址合并起来就是http://tentai.cn:9000/api/spc/getspclist .

  3. 数据集配置

    数据集的基础配置在我们平台的数据源管理-->数据集,使用前先配置好数据集然后在中间件通过参照页选择数据集即可,中间件不支持直接配置数据集,数据集选择后基本可以直接点保存了,没有什么好配置的,数据集相对来说就是表格视图.

  4. 查询参数

    查询参数指的是中间件地址提供给三方应用调用时,通过http的Get请求传过来的参数,由于数据集类型特殊,除了url请求的参数外还包含执行sql时所需要sql参数,可以一起配置在查询参数中,如果配置了查询参数,调用方使用你配置的中间件会自动把你配置的参数附加上,当然是基于Get请求的类型.

  5. 响应结果

​ 响应参数指的是中间件地址被三方应用调用时处理结果返回给三方应用,默认情况下是数据集的返回结果,如果当你对数据进行过滤就可以在响应参数配置你 想返回的一些字段,未配置的不返回,另外还支持对参数进行格式化.

  1. 授权认证

    授权认证一般是中间件调用第三方应用接口时才使用,数据集不需要做任何配置,除非后面中间件需要做身份认证调用时才会发挥它的作用.

  2. Http请求头

    跟授权认证一样,用于中间件调用第三方应用接口才使用,也是后面中间件需要做身份认证才有用,数据集就不必配置了.

  3. Http请求体

    跟授权认证一样,用于中间件调用第三方应用接口才使用,也是后面中间件需要做身份认证才有用,数据集就不必配置了,你就当它是postman的界面好了,虽然显示出来非强制要求你做配置.

# 3.2.2 查询参数

​ 数据集这里的查询参数很特殊,选择数据集类型中间件时,配置时自动把数据集中的自定义参数带到查询参数中,可以自行修改参数值或添加新参数,(切记)查询参数与数据集配置的参数对应,如果sql中不存在的参数将是无效的,支持跟数据集参数合并,中间件的查询参数不影响数据集那边的参数,它们是相互分离的,各自管理自己的参数.

​ 查询参数就是对数据集的sql查询进行过滤,字段及字段类型需要跟sql中保持一致,如果中间件需要三方应用在调用中间件地址时传递其它的一些参数,也是在查询参数中配置。

# 3.2.3 响应结果

​ 响应参数是指调用数据集的返回结果,可以自定义屏蔽掉不想获取的数据对象,也可以对元数据进行格式化转换操作,所有的接口响应都需要保留原接口返回类型数据结构,这个结构我们是无法自定义的,只能对响应结构无关紧要的数据进行过滤屏蔽。

​ 除了支持过滤参数外,还可以对响应的值进行格式化操作配置,下面将格式化参数做个规范说明;

日期时间类型:

//日期时间格式表达式参数描述
yyyy:四位数的年份(例如:2023)
yy:两位数的年份(例如:23)
MMMM:月份的完整名称(例如:十月)
MMM:月份的缩写名称(例如:Oct)
MM:两位数的月份(例如:10)
M:一位或两位数的月份(例如:10)
dddd:星期的完整名称(例如:星期三)
ddd:星期的缩写名称(例如:周三)
dd:两位数的日期(例如:13)
d:一位或两位数的日期(例如:13)
HH:24小时制的小时(例如:14)
H:一位或两位数的小时(例如:14)
hh:12小时制的小时(例如:02)
h:一位或两位数的小时(例如:2)
mm:分钟数(例如:30)
ss:秒数(例如:00)
tt:上午/下午设计ator(例如:AM)
t:上午/下午设计ator 的首字母(例如:A)
    
//自定义时间表达式常用字符串方式
yyyy-MM-dd			        // 格式化为 "2023-10-13"
HH:mm:ss         			// 格式化为 "14:30:00"
yyyy-MM-dd HH:mm:ss         // 格式化为 "2023-10-13 14:30:00"
yyyy-MM-dd (ddd) HH:mm:ss   // 格式化为 "2023-10-13 (Wed) 14:30:00"
M/d/yyyy h:mm tt			// 格式化为 "10/13/2023 2:30 PM"  

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27

数字类型:

//字符型转换 转为字符串  
12345.ToString("n");        //生成   12,345.00  
12345.ToString("C");        //生成 ¥12,345.00  
12345.ToString("e");        //生成 1.234500e+004  
12345.ToString("f4");        //生成 12345.0000  
12345.ToString("x");         //生成 3039  (16进制)  
12345.ToString("p");         //生成 1,234,500.00% 
1
2
3
4
5
6
7

# 4.3 三方接口中间件

​ 三方接口指的是调用第三方应用接口,由于三方接口类型比较多,常见的接口类型有RESET,RESTful, SOAP ,WebSocket,RPC等,那么我们使用最多的还是Rest及RPC类型的接口,其它的类型支持请关注中间件的持续升级,三方接口中间件配置界面如下;

# 4.3.1 基础信息

  1. 带*号的都必填

  2. 请求方式

    暂时只开放GET跟POST,后面再扩展其它请求类型.

  3. 鉴权 /非鉴权

    根据三方应用接口调用要求,如果需要鉴权选鉴权,反则选择非鉴权.

  4. 调用地址

    调用地址必须填入完整的接口请求地址、必须包含Http跟域名信息,如果填写不当会造成调用接口失败.

  5. 凭证接口

    如果授认证配置的是基于oauth2协议类型,这里必须配置,另外说明一下此处不需要Http开头及域名相关的前缀,只要配置凭证接口的获取地址即可(相对路径地址).

    如果三方应用不是oauth2协议,这里作为调用三方应用接口的凭证配置.

  6. 授权码接口

    如果授认证配置的是基于oauth2协议类型,在这里必须配置授权码接口,这是oauth2协议必须遵守的规范,且不可包含(http/https)域名地址(为相对路径地址),具体地址要看第三方应用接口给出的开发文档.

  7. 令牌接口

    如果授认证配置的是基于oauth2协议类型,这里必须配置令牌接口地址,即为获取access_token的接口地址,且不可包含(http/https)域名地址.

  8. 令牌结构

    这里不局限于你在授认证配置的是那一种协议类型,只要需要鉴权的第三方应用接口,这里必须配置令牌接口地址,中间件不提供统一的令牌模型,这里需要手动输入三方应用授权接口返回的access_token的结果集json对象,必须输入的是access_token所在的那一层结构,否则中间件无法获取到三方应用授权接口返回的access_token.

    (PS:需要鉴权的三方应用接口,除了在此处配置接口地址,还需要到授权认证中配置账号和认证方式等信息,在文档后面的使用说明中会提到具体配置)

# 4.3.2 关于鉴权

  1. 鉴权

    指的是三方接口为了安全起见,需要做认证授权,调用接口时需要提供授权码进行接口调用,授权的方式很多种,支持令牌及账号密码模式调用。

  2. 非鉴权

    只需提供接口地址就可以实现三方接口的调用,这种方式一般为非安全的设计,容易受到DOS攻击,一般情况下不推荐这种接口。

# 4.3.3 查询参数

​ 若三方应用接口是GET请求类型且需要提供一些相关的参数,需要配置查询参数,否则调用接口报错,查询参数跟postman一样,只要是GET请求,被调用方接口如果是GET请求类型且需要带参数的,必须在这里配置查询参数,具体参数名称要看被调用方接口给的接口文档,且不可随便命名.

# 4.3.4 响应结果

请参考文档数据集中间件的 🍳 响应结果配置

# 4.3.5 授权认证

​ 如果三方应用接口需要鉴权,必须遵守相关协议标准做相应的配置,最常见的鉴权类型有Basic,Bearer Token,Oauth2,JwT等,这些都是web系统常见的一些规范,当然也会有部分系统会自己自定义鉴权机制,比如我们的平台就是自定义的规则。

  • 无认证

    不需要做任何认证配置

  • Basic

    Basic 认证是一种简单的基于用户名和密码的身份验证方案。在 Basic 认证中,客户端将用户名和密码进行 Base64 编码,并将其放在请求头的 Authorization字段中发送给服务器。请求头的格式如下

    #不安全
    Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
    
    1
    2
  • Bearer

    Bearer 认证是一种基于令牌(Token)的身份验证方案,常用于 OAuth 2.0 授权框架中。在 Bearer 认证中,客户端将访问令牌作为凭据放在请求头的 Authorization 字段中发送给服务器。请求头的格式如下

    #推荐使用
    Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
    
    1
    2
  • JWT

    JWT 是一种基于 JSON 格式的令牌,常用于身份验证和授权场景中,JWT 由三部分组成:头部(Header)、载荷(Payload)和签名(Signature)。头部包含令牌的元数据,例如算法和类型;载荷包含令牌的主要内容,例如用户 ID 和角色;签名用于验证令牌的完整性和真实性。JWT 的主要特点是灵活性和可扩展性,因为它可以存储任意类型的数据,并且可以通过添加自定义字段来满足不同的需求.

  • Oauth2

    OAuth 2.0 是一种开放标准的授权框架,用于授权第三方应用程序访问受保护的资源。它定义了一组流程和协议,允许用户授权第三方应用程序代表其访问受限资源,而无需将用户名和密码直接提供给第三方应用程序。OAuth 2.0 使用令牌进行授权,其中包括访问令牌和刷新令牌。访问令牌用于访问受保护的资源,而刷新令牌用于获取新的访问令牌。OAuth 2.0 提供了一种安全的授权机制,使用户可以控制对其数据的访问权限.

  • 自定义

    自定义的认证是三方应用系统自己设计的一套安全认证,非基于通过安全协议实现的认证方式,一般通过过滤拦截器实现认证过程.

​ 由于认证请求过程是程序自动实现,除了无认证类型都必须指定认证请求参数的提交方式,否则会引发自动认证时出现不可避免的异常,默认情况下是json提交认证请求,账号和密码是必须提供的,另外还有身份凭证,访问令牌字段名称.

# 4.4 自定义代码

​ 自定义代码类型接口比较复杂,需要有一定的开发基础,配置前需要参考🍳 基础知识 相关网站进一步学习,另外还需要熟悉我们系统的自定义代码API接口的调用,API文档 链接至API文档 (opens new window) 也可以参考公司产品环境已经配置好的案例进行学习,公司产品环境 http://tentai.cn:8033.

# 4.4.1 基础信息

因为前面的基础信息已经做了相关的配置要求说明,这里就不重复介绍了,此处只针对于自代码类型的中间件基础信息特殊要求做个说明.

  1. 带*号是必填项

  2. 回调方法

    回调方法不能随意填写,自定义代码中必须有一个**funcation 函数名()**的代码,因为自定义代码类型必须有一个兜底的回调函数且有返回值方法,然后回填到回调方法中.

    function test()
    {
        //dosomething ...  你自己的逻辑
        return {
          data:{}  
        };
    }
    
    1
    2
    3
    4
    5
    6
    7
  3. 自定义代码

    只支持javascript脚本语法,另外还支持我们系统开发已经封装好的C#类型Api方法调用,不直接支持C#及其它类型语言代码,必须局限于API文档中的方法,若需要其它的Api方法调用,如果API函数库不满足,可以向开发申请需求,由开发封装好后跟文档同步更新.

  4. 数据源

    请参考文档🍳 数据集使用手册 (opens new window) 中的数据源使用方法一样,如果自定义代码中需要进行跨数据库跨服务器操作,还要在中间件配置跨服务器跨数据库的数据源,中间件中的数据源跟数据集中的数据源没有依赖关系,但是用法是一样的,以面简单做个演示,具体看API文档详细介绍;

    //默认不配置数据源想调用数据库查询方法
    db.ExecuteSql("select * from smart_userinfo");
    //配置有数据源且指定查询数据源中的某张表
    dataSource_FZVAHM942449.ExecuteSql("select * from smart_userinfo where USER_Name=@USER_Name",{USER_Name:'郑勇'});
    //以上dataSource_FZVAHM942449为数据源的编码,直接用它即可
    
    1
    2
    3
    4
    5
  5. 基它属性

    比如授权认证,http请求体,http请求头,查询参数,响应结果这些这里不做介绍了,用法及意义都是一样的,配置的时候自己搞清楚想做什么选择性的配置就可以了.

# 4.4.2 特性

  • 自定义业务

    自定义代码可以用于创建自己的程序或功能模块,也可以用于对现有系统、软件进行二次开发或定制化修改的DIY模式,但是前提必须遵守开发规范和API的标准库文档来编码,否则会引发不可预估的系统BUG.

  • 多数据源

    支持Mysql,Oralce,Sqlserver三种数据库,通过配置数据源进行跨服务器跨数据库查询。

  • 支持V8脚本引擎

    自定义代码它是.net平台的javascript引擎库,基于google的v8引擎开发的,虽然它是javascript引擎但是还支持.net跟javascript混合代码编写,非常有意思,所以在写脚本过程中是需要一定的基础才能写的,它非常灵活但也有些局限性,并不是什么代码支持,需要后端开发者做相应的扩展才能使用,后端开发者提供大量的API方法供前端调用。

  • API文档库

    中间件中所有的API都是基于v8引擎开发的,只要引擎支持的类和方法,都可以进行扩展,实施人员根据Api文档 中间件API文档 (opens new window) 规范来编写自定义代码.

# 4.4.3 数据源

请参考文档🍳 数据集使用手册 (opens new window)

# 4.4.4 自定义代码

​ 自定义代码是采用javascript语言模型的,只有javascript代码才高亮显示,C#低码显示的黑色的,但是不影响程序运行,v8引擎的代码是基于javascript脚本风格,只要是javasciprt的脚本都是支持的,可以在代码中调用中间件的API特有方法。

​ 使用前首先储备应有的基础知识,且熟悉API接口调用规范,这里强调一下,不管你业务代码写了多少,但是自定义代码中必须有一个兜底方法,而且这个方法必须是javascript脚本类型的方法,返回内容可以是成功/失败,也可以是结果集。

# 4.4.5 查询参数

请参考文档中的 查询参数 说明.

# 4.4.6 响应结果

请参考文档中的 响应结果 说明.

# 4.5 数据加密

当我们需要对中间件数据进行保护措施时可以通过加密提高安全性,中间件响应结果将以密文方式返回,调用方需要通过对应的解密秘钥进行解密才能看到明文数据,这属于中间件响应结果加密,当我们需要对中间件数据进行保护措施时可以通过加密提高安全性,中间件响应结果将以密文方式返回,调用方需要通过对应的解密秘钥进行解密才能看到明文数据.

# 4.5.1 加密类型

加密类型分为:Des,Base64,Md5,RSA四种.

# 4.5.2 解密类型

跟加密类型差不多,区别是Md5加密的数据不能进行解密操作,所以解密类型分为:Des,Base64,RSA三种.

# 4.5.3 加密/解密秘钥

只要对数据进行加密解密,必填配置加密秘钥,否则无法对数据进行加密操作,秘钥可以自己输入指定的名称也可通过点击生成秘钥由系统自动生成,秘钥生后不能随意更改,会影响加密/解密过程和结果.

# 4.5.4 特殊加密RSA

选择了Rsa加密类型会在中间件左侧多出一个选项【公钥/私钥】,这是一种非对称加密特殊方式,通过Rsa加密的数据必须由私钥进行解密,否则是几乎不可能被破解的,所以私钥一定要保存好,且不可提供给其他人使用.

公钥/私钥生成方式:生成公钥前需要先配置加密秘钥,然后可以通过中间件提供的公钥/私钥按钮自动生成,也可以通过其它方式生成,中间件这里只需要配置公钥即可,私钥自已保留.

# 4.6 数据加密(调用三方应用)

有时第三方应用接口需要密文传输,对方需要相应的解密秘钥才能获取到明文数据,具本应用还得看接口规范进行配置,不要盲目配置加密.

# 4.6.1 加密类型

加密类型分为:Des,Base64,Md5,RSA四种.

# 4.6.2 解密类型

跟加密类型差不多,区别是Md5加密的数据不能进行解密操作,所以解密类型分为:Des,Base64,RSA三种.

# 4.6.3 加密/解密秘钥

只要对数据进行加密解密,必填配置加密秘钥,否则无法对数据进行加密操作,秘钥可以自己输入指定的名称也可通过点击生成秘钥由系统自动生成,秘钥生后不能随意更改,会影响加密/解密过程和结果.

# 4.6.4 特殊加密RSA

选择了Rsa加密类型会在中间件左侧多出一个选项【三方公钥/私钥】,这是一种非对称加密特殊方式,通过Rsa加密的数据必须由私钥进行解密,否则是几乎不可能被破解的,所以私钥一定要保存好,且不可提供给其他人使用.

公钥/私钥生成方式:生成公钥前需要先配置加密秘钥,然后可以通过中间件提供的公钥/私钥按钮自动生成,也可以通过其它方式生成,中间件这里只需要配置三方提供的公钥即可,私钥由第三方应用自己保留.

# 4.7 调用记录

调用记录用来做追踪历史记录使用,根据调用记录可以看到所在ip地址,浏览器,调用方式,调用时间,耗时等信息,记录每一次的调用结果是否响应成功/失败.

# 4.7.1 主要作用

通过调用记录可以清晰的分析调用是否符合中间件的配置要求,实施人员从记录中看到响应失败时的原因.

# 4.8 黑名单

# 4.8.1 主要作用

当中间件地址暴露给其他人恶意调用时,程序要对ip进行拦截,默认是1秒钟请求次数不能大于10次(即 <=10次/秒),当调用超过阈值时,需要管理员权限进入中间件管理页面,在黑名单中对被拦截的地址进行放行才可以继续被调用,否则一直会被拦截。

如果发现某个IP存在频繁调用,也可以进入黑名单页面主动对其进行拦截,拦截后对方就无法再调用中间件接口了。

切记:为了提高用户体验,非对IP进行拦截,拦截的是利用请求地址恶意发送DDos攻击的黑客,拦截其中一个中间件,不会影响其它中间件使用。

# 4.8.2 如何关闭

中间件作为一个接口,有时会暴露给第三方调用,由于中间件有做限流(1秒请求次数不能>10+),当第三方应用频繁调用中间件会被拦截处理,每次去中间件中去执行放行操作比较麻烦,如果你不考虑性能和性能稳定性可以修改appsettings.json配置文件,如;

  "DDos": {
    "DDosSwitch": "off",
    "DDosIntercept": 20
  }
//配置描述
//DDosSwitch:是否做限流拦截,它有两种状态标识,分别为 off(关闭) on(开启)
//DDosIntercept: 拦截的阈值(1秒内调用次数),值越小拦截频率越高,反则越小
1
2
3
4
5
6
7

# 4.9 调用频率

# 4.9.1 频率等级

调用频率分为五个等级:极高,很高,高,一般,很少

阈值上限:500次/中间件

计算公式:很少 (500/5) * 1,一般(500/5) * 2,高(500/5) * 3,很高(500/5) * 4

# 4.9.2 响应耗时

耗时分为上限值,下限值,平均值。

上限值:中间件被调用时所消耗的最大响应时间(单位:秒)

下限值 :中间件被调用时所消耗的最少响应时间(单位:秒)

平均值 :中间件调用历史记录所消耗的平均响应时间(单位:秒)

# 结束

​

上次更新: 2024/02/20, 15:00:57
数据集
SPC基础介绍

← 数据集 SPC基础介绍→

最近更新
01
Linux操作系统安装部署
10-26
02
业务组件
04-22
03
打印
04-22
更多文章>
Copyright © 2022-2025 浙江腾泰公司所有:浙ICP备18023524号-1
  • 自动模式
  • 浅色模式
  • 深色模式
  • 阅读模式