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 日(周一)
  • Monetization Management 补丁版本发布:2020 年 7 月 6 日(星期一)
  • 管理服务器安全更新:2020 年 8 月 24 日(星期一)
  • 发布了包含问题修复的消息处理器补丁: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)

  • 令牌的 GenerateJWT 相对开始时间

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

  • 在 VerifyJWT 中引用 PublicKey/Certificate

    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 for Public Cloud 用户必须与 支持团队联系才能添加此属性。(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)

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

delete 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(成功)。修复此问题后,如果删除失败,系统现在会正确报告响应错误(状态 400)。 请注意,如果目标服务器被当前已部署的代理引用,则目标服务器删除操作可能会失败。在删除目标服务器之前,请检查以确保当前部署的任何 API 代理均未引用该目标服务器。

69765558 API 管理

资源权限 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 创收管理

修复了管理 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

此修复将在未来的 Edge for Private Cloud 版本中提供。

141601836 API 运行时

修复了日志消息中的主机名

116834109 API 运行时

跟踪记录中变量 failed、fault.cause 和 fault.name 的值不正确

130653816 API 运行时

运行时流量的间歇性 404 错误

132777537 API 运行时

ExtractVariables 政策针对有效的 JSONPath 失败

133713555 API 运行时

边缘路由器更改日期标头

133253435 API 运行时

Apigee-Main 线程的 CPU 使用率过高

111553402 API 运行时

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

126240341 API 运行时

改进了 GenerateJWT 政策失败时显示的通用“生成失败”消息

119854424 API 运行时

如果连接失败,具有单个目标服务器的 LoadBalancer 不应变为不活跃状态

129275412 API 运行时

为常规 IP 扫描添加 HTTP 标头到回退虚拟主机

129351507 API 运行时

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

65852874 API 运行时

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

138951646 API 运行时

JavaScript 中 httpClient 的时间限制不起作用

139051927 API 运行时

请求处理延迟时间较长

132443137 API 运行时

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

138310777 API 运行时

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

67170148 API 运行时

ServiceCallout 中的已用时间和 timeTaken 之间的差异

124049692 API 运行时

VerifyApiKey 政策中出现 NullPointerException

135031506 API 运行时

针对意外的 JWT 密钥格式添加了日志消息

137312366 API 运行时

通过 Content-Type 标头进行内容验证

109871907 API 运行时

没有 Response 元素的服务调出执行延迟

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 运行时

使用 SecretKey 的 GenerateJWT 和 VerifyJWT 不接受除 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 创收管理 - 补丁

修复了变现 /sync-developers API 抛出持久性冲突的问题。

155443118 创收管理 - 补丁

移除了 jsonMailProperties 字段。

150948843 创收管理 - 补丁

修复了变现 /sync-developers API 抛出持久性冲突的问题。