20.04.06 - 适用于公有云的 Apigee Edge 版本说明

您正在查看的是 Apigee Edge 文档。
转到 Apigee X 文档
信息

我们于以下日期开始发布适用于公有云的 Apigee Edge 的组件更新:

  • 消息处理器:2020 年 5 月 1 日,星期五
  • API 管理:2020 年 4 月 20 日,星期一
  • 创收管理:2020 年 4 月 20 日,星期一
  • API 管理补丁版本:2020 年 6 月 22 日(星期一)
  • 创收管理补丁版本:2020 年 7 月 6 日,星期一
  • 管理服务器安全更新:2020 年 8 月 24 日,星期一
  • 包含 bug 修复的消息处理器补丁版本:2020 年 9 月 24 日(星期四)
  • 包含 bug 修复的消息处理器补丁版本:2020 年 10 月 26 日(星期一)
  • 包含 bug 修复的消息处理器补丁版本:2021 年 2 月 1 日,星期一

新功能和更新

以下是此版本中的新功能和更新:

JWT 政策

  • JWT 加密

    通过 JWT 政策,您可以生成、验证和解码加密令牌。政策的新元素包括:

    • <Type> - 可让您设置令牌是进行签名还是加密。
    • <EncryptionAlgorithms> - 允许您设置 <Key><Content> 加密算法。

    (67165581)

  • 支持签名令牌中的 PSS 算法

    用于生成和验证 JWT 和 JWS 的政策现在支持 PS256、PS384 和 PS512 算法,如 IETF RFC 7518 中所述。 (119856499)

  • 生成令牌的 JWT 相对开始时间

    使用 GenerateJWT 政策生成 JWT 时,<NotBefore> 元素允许您指定从生成令牌到令牌生效之间的相对时间。例如,<NotBefore> 值为 2h 表示令牌仅在生成后 2 小时内有效。您可以设置 <NotBefore> 时间,以毫秒 (ms)、秒 (s)、分钟 (m)、小时 (h)、天 (d) 或周 (w) 为单位。(126261970)

  • VerifyJWT 中的引用公钥/证书

    VerifyJWT 政策中,<PublicKey>/<Certificate> 元素可让您引用 PEM 格式的证书,用于验证传入的 JWT 签名。例如:

    <PublicKey>
      <Certificate ref='public.certificate_pem'/>
    </PublicKey>

    (132918033)

消息模板函数

以下是此版本中新增的 消息模板函数

  • firstnonull - 返回第一个(最左边)非 null 参数的值。 (139698514)
  • xpath - 可让您应用 XML 路径 (XPath) 表达式来解析 XML 变量。 (123246424)

assignMessage 政策:assignVariable 可让您引用消息模板

assignMessage 政策中,<AssignVariable> / <Template> 元素允许使用 ref 属性,让您可在运行时注入可以更改的预定义模板,而无需修改政策。(118396082)

多个证书别名

配置 TLS 和在密钥库中使用多个证书(每个证书具有不同的别名)时,Edge 允许您在 <SSLInfo><KeyAlias> 配置中引用特定的证书别名。如需启用此更新的行为,请在消息处理器上的 http.properties 文件中将新的 HTTPClient.choose.alias.by.keyalias 属性设置为 true。面向公有云的 Edge 用户必须联系 支持团队才能添加此属性。(142141620)

JSONtoXML 政策:省略 XML 声明,缩进输出

JSONtoXML 政策中新增了两个布尔值选项,可让您更好地控制 XML 输出。

  • <Options> <OmitXmlDeclaration> - 如果设为 true(默认值为 false),<OmitXmlDeclaration> 元素会忽略政策生成的默认 <?xml version="1.0" encoding="UTF-8"?> XML 声明。
  • <Options> <Indent> - 如果设置为 true(默认值为 false),<Indent> 元素会缩进 XML 输出。 例如,不输出以下内容:

    <Array><n>1</n><n>2</n><n>3</n></Array>

    Indent 元素会生成以下内容:

    <Array>
     <n>1</n>
     <n>2</n>
     <n>3</n>
    </Array>

(65142394)

虚拟主机扫描的响应

如果向 Apigee 端点的 IP 地址(未指定虚拟主机)发出请求,则 Edge 返回了 HTTP 200 响应以及与该 IP 地址关联的默认 Apigee 虚拟主机发出的空白 HTML 文档。为了避免误以为此类响应可能代表可被利用的潜在漏洞,系统会断开连接且不返回任何响应。(140005396)

在 Trace 中定位服务器属性,以帮助排查问题

以下新的轨迹属性会显示目标服务器的 HTTPClient 是否已缓存,有助于排查目标连接问题:isHttpClientCachedisFromClientPool。(140574604)

MessageLogging 政策:Syslog 消息

MessageLogging 政策中,借助新的 <Syslog> / <PayloadOnly> 元素(布尔值),您可以确定是否自动将任何内容附加到您定义的 <Message> 前面。如果将 <PayloadOnly> 设置为 true,则无论 <FormatMessage> 设置如何,消息定义前面都不会附加任何内容。如果设置为 false(默认值),则 <FormatMessage> 设置可确定在日志消息前面附加的内容。(68722102)

缓存政策到期

ResponseCache 政策PopulateCache 政策中新增的 <TimeoutInSeconds> 过期时间元素会按照现有 <TimeoutInSecs> 元素的最初预期工作方式运行。请使用新元素。 为了向后兼容,已废弃的 <TimeoutInSecs> 元素仍然存在。如果同时配置了 <TimeoutInSecs><TimeoutInSeconds> 元素,Edge 会使用 <TimeoutInSeconds>。(119172893)

Virtualhost.aliases.values 流变量

新的只读 virtualhost.aliases.values 消息流变量会返回一个 JSON 格式的数组,其中包含分配给入站请求所调用的虚拟主机的所有别名。(128453178)

用于确保删除代理修订版本的新参数

删除 API 代理修订版本中新增了 force 查询参数。如果修订版本列在 List API Proxies API 中,但实际上无法查询修订版本,此参数可确保删除代理修订版本。(111691721)

例如:

DELETE /v1/organizations/myorg/apis/myproxy/revisions/2?force=true

为虚拟主机别名值新建流变量

新的只读 virtualhost.aliases.values 消息流变量会返回一个 JSON 格式的数组,其中包含分配给入站请求所调用的虚拟主机的所有别名。(128453178)

已修复 Bug

此版本中修复了以下 Bug。此列表主要供用户检查其支持服务工单中的问题是否已修复,并非旨在为所有用户提供详细信息。

问题 ID 组件名称 说明
143313772 消息处理器

修复了在启用 UseEffectiveCount 且发生滚动重启时 SpikeArrest 政策发生的一个问题。

(在 2021 年 2 月 1 日的补丁版本中。)

154428338 API 运行时

如果密钥库配置了类似的名称或别名,消息处理器无法加载环境。

我们修复了加载具有类似命名惯例的密钥库时出现的正则表达式查找冲突。此错误会导致消息处理器无法加载与密钥库关联的环境,或者在查找过程中返回多个冲突的密钥库时无法启动。

149507805 API 管理

为所有 MGMT 生产服务器启用通过 HTTP 进行部署/配置

配置更新通过 HTTP 而非 RPC 进行,从而提高可靠性并更好地记录错误。

137217974 API 管理

通过 HTTP 配置 MP 时,请在目标服务器仍在使用中时正确传播错误

由于问题 149507805 中引入了可靠性改进,因此当删除失败时,目标服务器删除操作的响应错误被错误地报告为状态 200(成功)。进行此项修复后,现在如果删除失败,响应错误会正确报告为 Status 400。 请注意,如果当前部署的代理引用了目标服务器,则目标服务器删除操作可能会失败。在删除目标服务器之前,请检查并确保当前部署的任何 API 代理均未引用目标服务器。

69765558 API 管理

Resource Permissions API 返回 403

149545506 API 管理

修复了在 API 中将用户添加到角色时出现的安全问题。

131246911 API 管理 对于门户中的开发者电子邮件地址,请启用对较新的域名(例如 *.games、*.asia)的支持

修复了以下问题:某些域名(例如 *.games*.asia*.africa)因网域验证器无法识别而导致开发者在 Edge 上创建失败。Edge 现在仅验证电子邮件地址格式是否有效(包含“@”符号)。

142217645 API 管理

PUT v1/o/{org_name}/apiproducts/{product_name} 不会移除配额

162299668 管理服务器

一个潜在的安全漏洞已得到修复。

135856488 管理服务器

界面运行缓慢

139407965 管理服务器

修复了允许在没有名称的情况下创建 KVM 的问题。

112488235 管理服务器

添加了验证功能,以防止创建名称中包含空格的虚拟主机。虚拟主机名不能使用空格字符。

132433193 创收管理

修复了应用更新问题。

152514520 创收管理

修复了删除实体的 Management API 调用问题。

128450374 API 运行时

JWT/JWS 政策应该遵循 IgnoreUnresolvedVariables - 如果未定义变量,则会抛出相应的错误

135354517 API 运行时

由于在 BasicAuth 中严格执行“String”数据类型,组织在 Release_190301 中失败

131763486 API 运行时

在消息处理器中,应忽略共享数据流的基本路径

135972575 API 运行时

Private Cloud 4.19.01 在部署期间显示不同的行为,因为 override=true&delay=300

此修复将包含在面向私有云的未来版本中。

141601836 API 运行时

修复日志消息中的主机名

116834109 API 运行时

Trace 中的变量值失败、fault.cause 和 fault.name 不正确

130653816 API 运行时

运行时流量出现间歇性 404 错误

132777537 API 运行时

ExtractVariables 政策因有效 JSONPath 失败

133713555 API 运行时

边缘路由器更改日期标题

133253435 API 运行时

Apigee 主线程的高 CPU 使用率

111553402 API 运行时

路径中含有无效字符的 API 产品在运行时之前不会被捕获

126240341 API 运行时

改进了关于 GenerateJWT 政策失败的通用消息“生成失败”

119854424 API 运行时

具有单个目标服务器的 LoadBalancer 不应在连接失败时变为非活跃状态

129275412 API 运行时

将 HTTP 标头添加到后备虚拟主机以进行常规 IP 扫描

129351507 API 运行时

当密码包含英文冒号时,BasicAuthentication 政策无法解码

65852874 API 运行时

确保 HTTPClient 不会尝试重复使用具有 Connection:close 响应标头的连接

138951646 API 运行时

时间限制不适用于 httpClient

139051927 API 运行时

请求处理延迟时间较长

132443137 API 运行时

更改了消息处理器行为,以处理未知的内部 x-apigee 标头

138310777 API 运行时

共享流部署调用随机返回 504

67170148 API 运行时

ServiceCallouts 中的经过时间和 timeTaken 差异

124049692 API 运行时

VerifyApiKey 政策中出现 NullPointerException

135031506 API 运行时

添加了有关意外 JWT 密钥格式的日志消息

137312366 API 运行时

按 Content-Type 标头进行内容验证

109871907 API 运行时

无响应元素的 ServiceCallout 执行延迟

143722867 API 运行时

JWT 必须对 PBKDF2 的迭代次数强制执行可配置的限制

144286363 混合跟踪记录

env.json 中的调试掩码不会遮盖 Apigee Hybrid 中的响应数据

147769812 API 运行时

在功能标志中将 OAuth 哈希属性声明为可变

149037704 API 运行时

修复了以下问题:分配给 proxy.url 流变量的值可能会返回错误的主机别名。

148972262 API 运行时

DecodeJWS 以无用的形式将载荷发送到上下文变量

116580622 API 运行时

响应不一致

149739904 API 运行时

HTTP 标头的数据遮盖应不区分大小写

149431545 API 运行时

GenerateJWT and VerifyJWT with SecretKey 不接受除 UTF-8 以外的任何编码

155448596 API 管理补丁

缺少默认的 apimonitoringadmin 角色的权限

为 apimonitoringadmin 角色添加了缺少的权限。

158592076 API 管理补丁

缺少默认 devadmin 角色的权限

向 devadmin 角色添加了缺少的权限。

152856311 API 管理补丁

验证以在虚拟主机创建和更新期间拒绝密钥库和信任库中的 PKCS7 和 DER 证书

在创建或更新虚拟主机期间,系统会强制执行验证,以检查在密钥库别名和信任存储区中添加的证书是否采用 PEM 格式,而不是 PKCS7、DER 等不兼容格式。

155478545 获利管理 - 补丁

电子邮件通知状态更新问题已解决。

154121499 获利管理 - 补丁

/mint/org/orgname/delete-org-data API 抛出 404 状态错误的问题已解决。

152356393 获利管理 - 补丁

为了便于营利公司创建,可以放宽公司名称长度验证要求。

138542921 获利管理 - 补丁

修复了以下问题:如果产品套装中包含多个自定义属性,则费率方案创建失败。

150948843 获利管理 - 补丁

修复了 Monetize /sync-developers API 造成持久性冲突的问题。

155443118 获利管理 - 补丁

jsonMailProperties 字段已移除。

150948843 获利管理 - 补丁

修复了 Monetize /sync-developers API 造成持久性冲突的问题。