云服务器内容精选

  • JWT的组成 图1 Json web token 一个JWT实际上就是一个字符串,它由三部分组成,头部、载荷与签名。形式为: A.B.C 样本数据如下: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJhdWQiOlsiZGVmYXVsdCIsImdhdGV3YXkiXSwiYXBwSWQiOiJkZWZhdWx0IiwiaXNzIjoiZGVmYXVsdCIsImV4cCI6MTU0NDY5MDY0NywiaWF0IjoxNTQ0Njg4ODQ3fQ.J-ngHZy8009k-OAQ7-6Jt2kUzsml6N60d-atVIP3UydsQH_GqFv4rSY_uliqZ2_8ecgcKm0pWAAFtN88t7ehVQ 头部( Header ) JWT需要一个头部,头部用于描述关于该JWT的最基本的信息,例如其类型以及签名所用的算法等。 头部信息是经过BASE64 编码的,包括以下几个属性: typ: token类型,固定,即JWT; alg: 签名算法类型,如RSA; kid: 密钥ID,由CraftArts IPDCenter颁发。 载荷(Payload) 载荷信息是经过BASE64编码解码后的JSON对象,包括以下几个属性: iss:该JWT的签发者,当前使用域名填充; sub:该JWT所面向的用户,当前使用系统应用Id; aud:接收该JWT的一方,当前使用被调用系统应用Id; exp(expires):什么时候过期,这里是一个Unix时间戳,默认5分钟; iat(issued at):在什么时候签发的(UNIX时间); nbf(Not Before):如果当前时间在nbf里的时间之前,则token不被接受;是否使用是可选的。 签名(Signature) 将上面的两个Base64编码后的字符串都用英文句号“.”连接在一起(头部在前),就形成了: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJhdWQiOlsiZGVmYXVsdCIsImdhdGV3YXkiXSwiYXBwSWQiOiJkZWZhdWx0IiwiaXNzIjoiZGVmYXVsdCIsImV4cCI6MTU0NDY5MDY0NywiaWF0IjoxNTQ0Njg4ODQ3fQ 最后,我们将上面拼接完的字符串用HS512算法进行加密。在加密的时候,我们还需要提供一个密钥(secret)。如果我们用mystar作为密钥的话,那么就可以得到我们加密后的内容: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJhdWQiOlsiZGVmYXVsdCIsImdhdGV3YXkiXSwiYXBwSWQiOiJkZWZhdWx0IiwiaXNzIjoiZGVmYXVsdCIsImV4cCI6MTU0NDY5MDY0NywiaWF0IjoxNTQ0Njg4ODQ3fQ.J-ngHZy8009k-OAQ7-6Jt2kUzsml6N60d-atVIP3UydsQH_GqFv4rSY_uliqZ2_8ecgcKm0pWAAFtN88t7ehVQ
  • 工作原理 统一认证SDK是基于JWT实现的一种认证机制,Json web token (JWT)是在网络应用环境间为了传递声明而执行的一种基于JSON的开放标准(RFC 7519)。该token的设计紧凑且安全,特别适用于分布式站点的单点登录(SSO)场景。JWT的声明一般被用来在身份提供者和服务提供者间传递被认证的用户身份信息,以便从资源服务器获取资源。它也可以被增加一些其它业务逻辑所必须的声明信息。该token可直接被用于认证,也可被加密。 API请求方将请求的用户信息利用私钥哈希生成签名,将用户信息与签名合并生成token,在调用API时将token传递给被调用方,API被调用方获取到此token后,利用公钥验证此token的正确性。
  • 获取方式 获取CraftArts IPDCenter系统管理员账号密码,通常为购买者注册的华为云账号。 登陆CraftArts IPDCenter系统首页,https://域名/unifiedportal/,可以在购买页面找到此地址。 进入管理中心。 图1 管理中心 在应用集成页面添加一个自己产品的应用。 图2 应用集成 在密钥管理页面创建密钥,创建成功后将会弹出密钥编码,私钥信息。 图3 秘钥管理
  • 收集信息 表1 收集信息 项目 说明 私钥/公钥获取URL/密钥ID 访问私钥是在CraftArts IPDCenter API交互过程身份凭证。通过私钥生成认证凭据,用于确保请求者身份的正确性。公钥获取URL自动获取公钥的地址,通过此地址,可自动获取公钥信息,用于检验认证凭据的正确性。 公钥获取URL地址为:https://域名/文根/basic/mgmt//public/api/v1/keymanage/getPublicKeyList 私钥与密钥ID见下面获取方式。
  • 开发过程 在Spring boot项目工程中创建一个API。 @Controller @RequestMapping("/api") public class TestController { @GetMapping("/testApi") public String test(HttpServletRequest request) { return "success"; } } 获取token并检验合法性。 @GetMapping("/testApi") public String test(HttpServletRequest request) { String token = request.getHeader("x-isc-token"); String issuer = JwtTokenService.verifyAndReturnIssuer(token); if (issuer.equals("user")) { return "success"; } return "error"; }
  • 卡片库简介 卡片是一种新的服务形态,提供一种比页面更细粒度的可复用的原子化服务能力,能直观呈现独立的业务含义,使用户能够精准快速地获取想要的服务。 目前卡片定义是狭义定义,不含报表、中大屏、页面、移动屏等由卡片编排的消费产物。 作为一种入口方式。如在一站式应用,以图标/链接/图表/列表等形式作为子应用的入口,提供比菜单更丰富和聚合的呈现和交互效果。 作为一种可视方式。如在销售项目空间,以图表/列表/表格等形式提供各项目指标的直观呈现,用户可以根据需要删减指标卡片,调整指标卡片位置;系统也可以根据User Profile动态推送内容。
  • 安装Node及Npm Node.js是一个JavaScript的运行环境,它能帮我们在服务器端运行JavaScript代码。我们需要Node.js来运行一些命令行工具。 首先,我们需要下载Node.js的安装包。你可以在Node.js的官方网站(https://nodejs.org/)下载安装包。 安装完成后,打开命令行工具,输入以下命令来检查Node.js是否成功安装: node -v 如果安装成功,应该可以看到Node.js的版本号。 npm是Node.js的包管理器,用于安装第三方包。同样地,在命令行中输入以下命令来检查npm是否成功安装: npm -v 如果安装成功,应该可以看到npm的版本号。
  • 快捷键介绍 在编排组件的过程中,还可以通过以下快捷键进行快捷操作。 表2 快捷键命令 操作 快捷键 操作 快捷键 搜索元素 Ctrl + F 复制 Ctrl + C 全选 Ctrl + A 粘贴 Ctrl + V 撤销 Ctrl + Z 删除 Backspace / Delete / Del 恢复 Ctrl + Y 上下滚动 鼠标滚轮 手型工具 H 移动 ←↑→↓ 套索工具 L 左右滚动 Shift + 鼠标滚轮 空间工具 S 缩放 Ctrl + (鼠标滚轮 / +-) 连接工具 C 恢复缩放 Ctrl + 0 编辑名称 E 选取 Shift + (鼠标左键 / 鼠标拖动)
  • 流程设计 流程申请单创建完成后,返回至申请单列表页面,单击操作列的“编辑”,进入流程编辑页面。 添加组件。 拖拽左侧列表中的组件至工作布。 单击画布中的组件,会显示快捷操作按钮,通过快捷按钮,也可以快速的添加任务、网关、事件、注释或连接线等。 如图1所示,添加四个组件,开始事件、结束事件和“用户任务”,并使用箭头进行连接。更多组件说明请参考组件介绍。 图1 创建流程节点 为组件添加属性及监听器。 选择“用户任务”组件,在右侧“常规”页签中设置“名称”“责任人”“责任群组”等信息。 选择“连接箭头”组件,在右侧“常规”页签中设置“中文名称”“英文名称”,“通过条件”选择“表达式”。 常规属性设置完成后,选择监听器页签,根据实际情况,在“监听器列表”中,为组件添加相应的监听动作。 如“超时自动转审”“超时自动审批”等。 图2 属性设置 设置完成后,单击右上角的“保存”。 选择“文件”可将当前界面保存为BPMN文件或SVG图。
  • 组件介绍 系统预置多种工具及组件,详情如下表。 表1 组件介绍 图标 名称 功能 抓手工具 拖动画布。 套索工具 选择多个图形,也可以使用快捷键Shift选取。 创建/删除空间工具 创建/删除空间。 开始事件 作为流程的开始。 中间事件 作为流程组件的中间事件,是一个暂停事件,将流程事务提交,并启动一个新事务执行后续的流程。 最常用的是作为消息捕获或定时任务。 结束事件 代表整个流程的结束。 排他网关 作为流程组件的路由网关,用于区分分支路由,出口走其中一条分支。 并行网关 作为流程组件的路由网关,并行网关允许将流程拆分为多个分支,也可以将多个分支汇集到一起。 包容网关 包容网关是排他网关和并行网关的综合体。包容网关与并行网关类似都是配对使用。 与并行网关的区别是,并行网关出口分支都执行,包容网关是出口分支可以配置条件,执行或不执行。 空白任务 空白任务节点作用与手动任务节点相同。流程引擎处理该节点时将简单通过,自动继续流程。 用户任务 作为流程组件的用户处理任务,用户可以进行通过、驳回、转审等操作。 服务任务 作为流程组件的服务任务节点,调用 API服务 。 业务规则任务 作为流程组件的业务规则任务,执行一段表达式或java程序。 发送任务 作为流程组件的发送消息组件。 接收任务 作为流程组件的监听事件,等待一个特定的消息(用户配置的消息)到达才往下执行。 手动任务 用于建模自定义任务内容的任务节点,流程引擎处理该节点时将简单通过,自动继续流程,常用于流程调试。 内嵌子流程 内嵌子流程,它是一个可以包含其他活动、分支、事件等的活动。它表现为将一个流程(子流程)定义在另一个流程(父流程)的内部,子流程作为父流程的一部分。 外接子流程 作为流程组件的内嵌流程,嵌入其他bpmn流程。 导航分组 作为流程组件的分组节点,用户导航树自动生成时作为父节点展示。
  • 代码示例 @Controller @RequestMapping("/api") public class TestController { @GetMapping("/testApi") public String test(HttpServletRequest request) { String token = request.getHeader("x-isc-token"); String issuer = JwtTokenService.verifyAndReturnIssuer(token); if (issuer.equals("user")) { return "success"; } return "error"; } }
  • 操作场景 在常规代码开发中,我们通常会将一些高频率用到的一些代码片段抽离出来业务代码,使其成为一个公共函数,减少重复的代码,从而达到代码复用的目的。 同样,在低代码开发中,我们不可避免的需要编写一些高代码进行组合开发,这里同样存在存储一些公共函数以供各处调用需求。 工具类方法utils就是诞生在这样的背景之下,我们可以将一些可复用的公共函数编写到工具类方法中,也可以将一些npm包引用到utils中,供后续调用。
  • Nmp工具类 对于一些简单的公共函数来说,直接添加function工具类会很方便,但是对于一些比较复杂的公共函数或者第三方的一些公共函数来说,直接编写函数并不是一个理想的方式,所以,我们还提供了npm工具类,以供引入npm包。 进入UI编辑器,单击插件栏的进入国际化页面。 单击,选择npm,配置如下信息。 图2 Nmp工具类 表1 参数说明 参数 释义 名称 utils名称。 包名 npm包名。 导出名称 导入时的命名,如果是非解构,则可以自由命名,如果是解构,则npm包的导出必须要有该名称。 是否解构 解构则使用如import {export1} from 'module'的方式导入。 入口路径 有些npm包的方法并不在默认导出中,如import {foo,bar} from"module-name/path/to/specific/un-exported/file",这时候,就需要填写入口路径。 版本号 npm包的版本号,需要符合npm包版本规范,如不填则默认为最新的。 cdn链接 浏览器直接可用的生产包链接,请确保可用,否则可能会造成页面预览失败。 如果页面使用了npm utils,则需要在手动录入npm cdn链接,否则可能会造成页面预览失败。 配置完成后,单击“保存”。
  • 编辑器首页 图1 UI编辑器页面 工具栏:汇集了系统常用操作,包含清除画布、刷新画布、保存画布、预览、发布、撤销、回退、全屏、国际化切换、注销登录。 插件:系统、页面级内容管理,包含物料管理、大纲树、国际化、页面JS、状态管理、资源管理、页面Schema几个模块。 物料:页面编排时用到的组件。 导航树:展示电子流节点信息并作为页面管理入口,包含页面的复制、粘贴,绑定页面生命周期。 画布:页面绘制,包含页面元素的新增、复制、删除、顺序调整。 设置面板:页面属性配置、高级配置。
  • 业务组件 系统内置9个业务组件。进入UI编辑器,单击插件栏的展开物料列表,单击组件页签,根据实际需求选择对应的业务组件。 图1 业务组件 表1 业务组件介绍 序号 组件名称 功能描述 1 添加部件 配置文档/部件筛选。 2 设置参与者 配置不同角色的用户。 3 流程指引 展示流程操作指引。 4 信息树 配置产品信息树并进行搜索和选择。 5 流程团队 展示团队角色及成员信息。 6 评审记录 展示当前节点处理任务及历史评审记录。 7 评审三件套 设置评审路由(通过、驳回、转他人处理)及意见。 8 转审记录 通过表格展示转审记录。 9 附件 文件上传与下载管理。 父主题: 新增组件