您正在查看 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 是否已缓存,从而帮助排查目标连接问题:isHttpClientCached 和 isFromClientPool。(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 | 消息处理器 |
修复了在启用 (在 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)的支持
修复了以下问题:某些域名(例如 |
| 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 中 |
| 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 运行时 |
修复了以下问题:分配给 |
| 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 | 创收管理 - 补丁 |
修复了 |
| 152356393 | 创收管理 - 补丁 |
放宽了对创收公司创建的公司名称长度验证。 |
| 138542921 | 创收管理 - 补丁 |
修复了在产品包中包含多个自定义属性时,创建费率方案失败的问题。 |
| 150948843 | 创收管理 - 补丁 |
修复了变现 |
| 155443118 | 创收管理 - 补丁 |
移除了 |
| 150948843 | 创收管理 - 补丁 |
修复了变现 |