Red Hat Integration 2023.q2 发行注记


Red Hat Integration 2023.q2

Red Hat Integration 中的新功能

Red Hat Integration Documentation Team

摘要

描述 Red Hat Integration 产品,并提供有关本版本中新内容的最新详情。

前言

使开源包含更多

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。我们从这四个术语开始:master、slave、黑名单和白名单。由于此项工作十分艰巨,这些更改将在即将推出的几个发行版本中逐步实施。详情请查看 CTO Chris Wright 的信息

对红帽文档提供反馈

我们感谢您对我们文档的反馈。要提供反馈,请选择文档中的相关文本并添加注释。

先决条件

  • 已登陆到红帽客户门户网站。
  • 在红帽客户门户网站中,文档使用 Multi-page HTML 格式。

流程

要提供反馈,请执行以下步骤:

  1. 点文档右上角的反馈按钮查看现有的反馈。

    注意

    反馈功能仅在多页 HTML 格式中启用。

  2. 高亮标记您要提供反馈的文档中的部分。
  3. 点在高亮文本旁弹出的 Add Feedback

    文本框将在页面右侧的"反馈"部分中打开。

  4. 在文本框中输入您的反馈,然后点 Submit

    创建了一个与文档相关的问题。

  5. 要查看问题,请点反馈视图中的问题跟踪器链接。

第 1 章 Red Hat Integration

Red Hat Integration 是一组全面的集成和事件处理技术,用于在混合和多云环境中创建、扩展和部署基于容器的集成服务。Red Hat Integration 提供了一个灵活的、分布式和以 API 为中心的解决方案,可供组织用来在数字世界所需的应用程序和系统间连接和共享数据。

Red Hat Integration 包括以下功能:

  • 实时消息传递
  • 跨数据中心消息流
  • API 连接
  • 应用程序连接器
  • 企业集成模式
  • API 管理
  • 数据转换
  • 服务组成和编配

2.1. Camel Extensions for Quarkus 功能

快速启动和低 RSS内存
使用 Quarkus 优化的构建时间和提前(AOT)编译功能,您的 Camel 应用程序可在构建时预先配置,从而导致启动时间。
应用程序生成器
使用 Quarkus 应用程序生成器 引导应用程序并发现其扩展生态系统。
高可配置

Camel Extensions for Quarkus 应用程序的所有重要方面均可以编程方式使用 CDI (Contexts 和 Dependency Injection)或使用配置属性来设置。默认情况下,配置 CamelContext 并为您自动启动。

参阅 配置 Quarkus 应用程序 指南以了解有关 bootstrap 和配置应用程序的不同方法的更多信息。

与现有 Quarkus 扩展集成
Camel Extensions for Quarkus 为一些 Camel 组件用来继承原生支持和配置选项的库和框架提供扩展。

2.2. 支持的平台、配置、数据库和扩展

  • 有关 Camel Extensions for Quarkus 版本 2.13.2 中支持的平台、配置和数据库的详情,请查看客户门户网站中的支持的配置页面(需要登录)。
  • 如需 Red Hat Camel Extensions for Quarkus 扩展列表以及每个扩展的红帽支持级别,请参阅 Camel Extensions for Quarkus Reference 中的 Extensions Overview 章节(需要登录)。

2.3. 用于 Camel Extensions for Quarkus 的 BOM 文件

  • 要将 Red Hat Camel Extensions for Quarkus 版本 2.13.3 项目配置为使用支持的扩展,请使用来自 Redhat Maven Repository 的最新 Bill Of Materials (BOM)版本 2.13.7.SP3-redhat-00003 或更新版本。

有关 BOM 依赖项管理的更多信息,请参阅使用 Camel Extensions for Quarkus 开发应用程序

2.4. 技术预览扩展

Camel Extensions for Quarkus ReferenceExtensions Overview 章节中,指定为技术预览的项目的支持有限,如技术预览功能支持范围所定义。

注意

虽然 CXF 被完全支持,但这个 Camel Extensions for Quarkus 版本仍有问题。以下功能仍然还只是一个技术预览:

CEQ-5390 WS-ReliableMessaging
对 CXF WS-ReliableMessaging 当前不可用的完全支持,它仍然是 2.13.3 的技术预览。

2.5. 已知问题

CEQ-6263 OpenTelemetry trace 没有按顺序生成

如果您尝试通过 OpenTelemetry 捕获 DB 调用 trace,则 bean 调用在新线程中执行,并在 JBDC 驱动程序中创建一个新的 OpenTelemetry 上下文,其新的 span 不在预期父级之外。

注意

为确保记录的 span 序列正确,您必须使用 full to ("bean:") 端点 URI,而不是短的 .bean () EIP DSL 方法。

如果在路由模板之前处理,CEQ-6217 Templated 路由会失败
如果在路由模板定义前在 camel.main.routes-include-pattern 中设置 templated 路由定义,则 Camel 应用程序将无法启动。
OpenShift 上的 CEQ-6203 CXF 需要 quarkus.cxf.path 属性

在 OpenShift 上部署带有 CXF 的 Camel Quarkus 时,您必须设置 quarkus.cxf.path 属性。

否则,因为缺少存活度/就绪度探测,pod 将无法工作:

示例

11:36:07,343 Can't find the request for http://10.10.10.10:8080/q/health/ready's Observer

CEQ-5705 Extension camel-quarkus-snmp 不支持原生

在 Camel Extensions for Quarkus 中,我们仅在 JVM 模式中支持 camel-quarkus-snmp 组件。

SNMP 版本 3 仅支持操作 轮询。(此限制是由 Camel 3.18.6 中的问题导致的。如需更多信息,请参阅 CAMEL-19298

注意

目前 ,http://code.quarkus.redhat.com 可能不会列出 camel-quarkus-snmp,但实际上我们确实支持 JVM 模式的组件。

2.6. 重要备注

支持 AdoptiumJDK
Camel Extensions for Quarkus 版本 2.13.3 包括对 AdoptiumJDK 11 和 AdoptiumJDK 17 的支持。
Camel 从 3.14.2 升级到 3.18.6

Camel Extensions for Quarkus 版本 2.13.3 已从 Camel 版本 3.14.2 升级到 Camel 3.18.6。有关每个 intervening Camel 补丁发行版本的详情,请参考以下内容:

Camel Quarkus 从 2.7 升级到 2.13 版本

Camel Extensions for Quarkus 版本 2.13.3 已从 Camel Quarkus 版本 2.7 升级到 Camel Quarkus 版本 2.13。有关每个 intervening Camel Quarkus 补丁发行版本的详情,请参考:

2.7. 已解决的问题

下表列出了影响 Camel Extensions for Quarkus 的已知问题,这些问题已在 Camel Extensions for Quarkus 版本 2.13.3 中修复。

Expand
表 2.1. 已解决的问题
问题描述

CEQ-6263

OpenTelemetry 跟踪未按顺序生成。

CEQ-6254

支持扩展: camel-quarkus-vertx-http

CEQ-5705

支持扩展: camel-quarkus-snmp

CEQ-5265

支持扩展: camel-quarkus-yaml-dsl

CEQ-4706

支持扩展: camel-quarkus-amqp

CEQ-4618

支持扩展: camel-quarkus-jdbc

CEQ-2320

XML DSL Language - extension camel-quarkus-xml-io-dsl

2.7.1. 之前的版本

有关 Camel Quarkus 2.7 和 Camel Quarkus 2.13 之间解决问题的详情,请查看每个补丁发行版本的发行注记。???

2.8. 弃用的 Camel Extensions for Quarkus 功能

CEQ 3.x 的下一个主要发行本中没有以下功能和认证,在此版本中已被弃用。

2.8.1. JDK 11

已弃用的功能

JDK 11 在此 Camel Extensions for Quarkus 发行版本中已弃用。以后的版本不支持它。

2.8.2. Camel-microprofile-metrics

Camel Extensions for Quarkus 版本 2.13.2 开始,camel-microprofile-metrics 已被弃用。改为使用 camel-micrometer

2.9. 本发行版本中添加的扩展

下表列出了此 Camel Extensions for Quarkus 版本 Camel Extensions for Quarkus 的扩展。

Expand
表 2.2. 添加了扩展
扩展工件描述备注

AMQP

camel-quarkus-amqp

使用 Apache QPid 客户端与 AMQP 协议进行消息传递.

 

CXF

camel-quarkus-cxf-soap

使用 Apache CXF 公开 SOAP WebServices 或使用 CXF WS 客户端连接到外部 WebServices。

 

JDBC

camel-quarkus-jdbc

通过 SQL 和 JDBC 访问数据库.

 

SNMP

camel-quarkus-snmp

接收陷阱和轮询 SNMP (简单网络管理协议)功能的设备。

SNMP 版本 3 仅支持操作 轮询。(此限制是由 Camel 3.18.6 中的问题导致的。如需更多信息,请参阅 CAMEL-19298

Vert.x HTTP Client

camel-quarkus-vertx-http

Camel HTTP 客户端支持 Vert.x。

 

YAML-DSL

camel-quarkus-yaml-dsl

用于解析 YAML 路由定义的 YAML 堆栈。

 

XML IO DSL

camel-quarkus-xml-io-dsl

用于解析 XML 路由定义的 XML 堆栈

 

2.10. 这个版本中添加的数据格式

在 2.13.3 的 Camel Extensions for Quarkus 发行版本中没有添加数据格式。

第 3 章 Debezium 2.1.4 发行注记

Debezium 是一个分布式更改数据捕获平台,它捕获数据库表中发生的行级更改,然后将对应的更改事件记录传递给 Apache Kafka 主题。应用程序可以读取 这些更改事件流,并按发生更改事件的顺序访问更改事件。Debezium 基于 Apache Kafka 构建,并在 OpenShift Container Platform 或 Red Hat Enterprise Linux 上部署并与 AMQ Streams 集成。

以下主题提供发行版本详情:

3.1. Debezium 数据库连接器

Debezium 为以下通用数据库提供基于 Kafka Connect 的连接器:

  • Db2
  • MongoDB
  • MySQL
  • Oracle
  • PostgreSQL
  • SQL Server

3.1.1. 连接器使用备注

  • Db2

    • Debezium Db2 连接器不包含 Db2 JDBC 驱动程序(jcc-11.5.0.0.jar)。有关如何部署必要 JDBC 驱动程序的信息,请参阅 部署说明
    • Db2 连接器需要使用抽象语法表示法(ASN)库,该库可作为 Linux Db2 的标准部分提供。
    • 要使用 ASN 库,您必须有 IBM InfoSphere Data Replication (IIDR)的许可证。您不必安装 IIDR 来使用库。
  • MongoDB

    • 目前,您不能使用带有 MongoDB 4.2 的 Debezium MongoDB 连接器的事务元数据功能。
  • Oracle

    • Debezium Oracle 连接器不包括 Oracle JDBC 驱动程序(ojdbc8.jar)。有关如何部署必要 JDBC 驱动程序的信息,请参阅 部署说明
  • PostgreSQL

    • 要使用 Debezium PostgreSQL 连接器,您必须使用 pgoutput 逻辑解码输出插件,这是 PostgreSQL 版本 10 及更新的版本的默认值。

3.2. Debezium 支持的配置

有关 Debezium 支持的配置的详情,包括支持的数据库版本的信息,请参阅 Debezium 2.1.4 支持的配置页面

3.2.1. AMQ Streams API 版本

Debezium 在 AMQ Streams 2.3 上运行。

AMQ Streams 支持 v1beta2 API 版本,它更新 AMQ Streams 自定义资源的 schema。旧的 API 版本已弃用。升级到 AMQ Streams 1.7 后,但在升级到 AMQ Streams 1.8 或更高版本前,您必须升级自定义资源以使用 API 版本 v1beta2

如需更多信息,请参阅 Debezium 用户指南

3.3. Debezium 安装选项

您可以在 OpenShift 或 Red Hat Enterprise Linux 上使用 AMQ Streams 安装 Debezium:

3.4. 将 Debezium 从版本 1.x 升级到 2.1.4

当前的 Debezium 版本包括在从早期版本升级时遵循特定步骤的更改。如需更多信息,请参阅 中断更改列表升级过程

3.4.1. 将连接器升级到 Debezium 2.1.4

Debezium 2.1.4 是新 Debezium 主版本的第一个红帽发行版本。Debezium 2.1.4 中的一些更改与早期版本的 Debezium 不兼容。因此,要保留数据并确保当您从 Debezium 1.x 版本升级到 2.1.4 时继续操作,您必须在升级过程中完成一些手动步骤。

一个显著的变化是一些连接器参数的名称已更改。要容纳这些更改,请查看 配置属性更新,并记录连接器配置中存在的属性。在升级前,编辑每个 Debezium 连接器的配置,以添加任何更改的属性的新名称。在升级前,请编辑任何 1.x 连接器实例的配置,以便存在旧的和新属性名称。升级后,您可以删除旧的配置选项。

先决条件

  • Debezium 现在与 Kafka 版本兼容,最多 3.3.1。这是 AMQ Streams 2.3 中的默认 Kafka 版本。
  • 需要 Java 11 运行时,在升级前必须可用。AMQ Streams 2.3 支持 Java 11。在开发新应用程序时使用 Java 11。Java 11 启用最新的语言更新,如新的 String API 和 predicate 支持的变化,同时从 Java 性能改进中受益。AMQ Streams 2.3 不再支持 Java 8。
  • 在明明更改列表 中检查向后兼容的更改
  • 验证您的环境是否符合 Debezium 2.1.4 支持的配置

流程

  1. 在 OpenShift 控制台中,查看 Kafka Connector YAML 以识别在 Debezium 2.1.4 中不再有效的连接器配置。详情请查看 表 3.1 “连接器配置属性的更新”
  2. 编辑配置,为在第 1 步中识别的属性添加 2.x 等效项,以便存在旧的和新属性名称。将新属性的值设置为之前为旧属性指定的值。
  3. 在 OpenShift 控制台中,停止 Kafka Connect 以安全地停止连接器。
  4. 在 OpenShift 控制台中,编辑 Kafka Connect 镜像 YAML 来引用 connector zip 文件的 Debezium 2.1.4.Final 版本。
  5. 在 OpenShift 控制台中,编辑 Kafka Connector YAML 以删除所有不再对连接器有效的配置选项。
  6. 根据需要调整应用程序的存储依赖项,具体取决于代码中的存储模块实施依赖项。请参阅有破坏性的变化中的 Debezium 存储的变化
  7. 重启 Kafka Connect 以启动连接器。重启连接器后,2.1.4.Final 连接器将继续从您在升级前停止连接器的点处理事件。更改连接器在不会修改升级前写入 Kafka 的事件记录。

3.5. 新的 Debezium 功能

Debezium 2.1.4 包括以下更新。

3.5.1. 可能会造成问题的更改

Debezium 2.1.4 中的以下变化代表了连接器行为的显著区别,需要与早期 Debezium 版本不兼容的配置更改:

应用到多个连接器的更改
数据库历史记录主题
现在被称为数据库 schema 历史主题。
内存队列的对象大小限制
使用反映值不再计算大小。相反,队列限制会根据消息模式进行估算。(DBZ-2766) (MongodB, MySQL, Oracle, PostgreSQL, SQL Server )
暴露连接器指标
Debezium 之前将连接器指标作为快照、流和基于历史记录的 Bean 的单个元组公开。在这个版本中,连接器指标作为多分区方案公开。因此,指标名称及其公开的方式改变(DBZ-4726)。如果使用 Grafana、Prometheus 或类似的 JMX 框架来收集指标,请查看收集指标的过程。
database.server.name property
连接器配置中不再使用。如需更多信息,请参阅 表 3.1 “连接器配置属性的更新”
模式定义
为了命名和版本一致性,Debebe 模式现在在中央点中定义(DBZ-4365、 DBZ-5044)。如果使用模式 registry,则可能会出现架构兼容性问题。
Debezium 存储更改
在以前的版本中,集成支持作为 debezium-core 模块的一部分读取和存储偏移、历史记录和其他数据。此发行版本包括一个新的 debezium-storage 模块,它带有在本地文件系统中或 Kafka (DBZ-5229) 存储数据的实现。这种方法中实施的扩展点使得以后引入其他存储实施。作为升级的一部分,您可能需要根据代码所需的存储模块实现调整应用程序的依赖关系。
在通信异常后重启
当抛出与通讯相关的异常时(SqlException, IOException),默认情况下 Debezium MongoDB, MySQL, PostgreSQL, and SQL Server 连接器现在会自动重启 (DBZ-5244)。
skipped.operations 配置选项的默认值
现在,默认值为 truncate (DBZ-5497) (MongoDB, MySQL, Oracle, PostgreSQL, SQL Server)
schema.name.adjustment.mode 属性的默认值
默认值为 none (DBZ-5541)。之前的默认选项是,对于使用 Avro converter 的客户来说,avro 是一个很好的选择,但在使用 JSON 转换器的环境中造成混淆。作为此更改的一部分,sanitize.field.names 属性不再可用。
删除了连接器配置属性

Debezium 1.x 版本中提供的几个属性不再有效,并被新属性替代。如需更多信息,请参阅下表:

Expand
表 3.1. 连接器配置属性的更新
1.x 属性与 2.x 属性等效

数据库站 (传递数据库驱动程序属性)(DBZ-5043)

driver.*

database.dbname (SQL Server)

database.names

database.history.consumer.* (DBZ-5043)

schema.history.internal.consumer.*

database.history.kafka.bootstrap.servers (DBZ-5043)

schema.history.internal.kafka.bootstrap.servers

database.history.kafka.topic (DBZ-5043)

schema.history.internal.kafka.topic

database.history.producer.* (DBZ-5043)

schema.history.internal.producer.*

database.server.name (DBZ-5043)

topic.prefix

mongodb.name (MongoDB)

topic.prefix

schema_blacklist (DBZ-5045)

schema_exclude_list

schema_whitelist (DBZ-5045)

schema_include_list

应用到 MySQL 连接器的更改
  • MySQL 连接器不再支持旧的 JDBC 传统日期/时间属性(DBZ-4965)。
应用到 MongoDB 连接器的更改
  • MongoDB 连接器不再支持直接来自 oplog 的流。更改流代表了使用 MongoDB 执行更改数据捕获的高级机制。连接器现在将 oplog 数据捕获和解码到 MongoDB 更改流,而不是直接读取 oplog 数据,这会将集合中发生的更改作为事件流公开。Debezium 连接器订阅流,然后将更改下游提供给 Kafka。更改流的转换提供了各种好处,包括从非主节点流更改的功能,以及为下游用户提供完整文档表示的更新事件。
  • 配置属性 mongodb.nametopic.prefix 属性替代。
应用到 PostgreSQL 连接器的更改
  • 协议缓冲区(protobuf)解码不再被支持(DBZ-703)。
  • wal2json 插件不再被支持(DBZ-4156)。
  • PostgreSQL 事务 ID 现在是 32 位整数,可滚动。为了简化事务的重复数据删除,LSN 现在作为标识符的一部分被包括(DBZ-5329)。
应用到 SQL Server 连接器的更改
  • 如果没有为 SQL Server 数据库启用 SSL,或者您想要不使用 SSL 连接到数据库,请通过将连接器配置中的 database.encrypt 属性的值设置为 false 来禁用 SSL。
  • database.dbname 属性由 database.names 属性替代。

3.5.2. 提升到正式发行(GA)的功能

在 Debezium 2.1.4 发行版本中,以下功能从技术预览提升到正式发布 (GA):

3.5.3. Debezium 功能更新

这个 Debezium 2.1.4 发行版本提供多个功能更新和修复,包括以下列表中的项目:

  • MySQL 连接器现在支持 binlog 压缩。DBZ-2663
  • 限制了 "Streaming requested from LSN" 警告的日志输出量。DBZ-3007
  • 在 MySQL 连接器解析器中实现对 JSON_TABLE 的支持。DBZ-3575
  • 现在,您可以通过发送信号来暂停或停止增量快照。DBZ-4251
  • 现在,当用户帐户缺少所需的 CDCReader 权限时,SQL Server 连接器会失败。DBZ-4346
  • MongoDB 连接器现在可以解码二进制有效负载 DBZ-4600
  • 现在,您可以暂停并恢复正在运行的增量快照 DBZ-4727
  • 现在,您可以通过指定连接字符串 URI DBZ-4733来指定 MongoDB 连接设置
  • MongoDB 连接器的 field.exclude.list 属性现在可以与具有相同名称的不同集合的字段一起工作。DBZ-4846
  • PostgresSQL 连接器现在在错误 PSQLException: 此连接被关闭后重试连接。DBZ-4948
  • MySQL 连接器现在在历史记录记录 DBZ-4998中存储事件标头时间戳
  • LogMiner 批处理大小现在根据当前的批处理大小进行调整,而不是默认大小。DBZ-5005
  • 现在,您可以为 ByLogicalTableRouter SMT 将 最大条目数配置为缓存DBZ-5072
  • 新的扩展 API 允许您查询 Debezium 版本。DBZ-5092
  • 将字段 ts_ms 添加到 schema 更改事件,以识别事件何时发生或被处理。DBZ-5098
  • 当 MongoDB 连接器转换 oplog 条目时,现在使用 RawBsonDocument 类而不是 文档DBZ-5113
  • MySQL 提交时间戳 DBZ-5170
  • 事件 SCN 现在包含在 Oracle 事件记录中。DBZ-5225
  • 为了避免出现 UnknownTopicOrPartitionException,您现在可以设置 database.history.kafka.create.timeout.ms 以指定连接器等待创建 Kafka 历史记录主题的时长。DBZ-5249
  • 修改主密钥后,在源和目标接收器之间现在 LOB 类型数据一致。DBZ-5295
  • MySQL 连接器现在在尝试读取 binlog 时收到错误后重试。DBZ-5333
  • 在增量快照期间,Oracle 连接器现在使用包含句点的名称从数据库正确解析事件。DBZ-5336
  • 支持带有 schema 前缀的 PostgreSQL 默认值功能调用。DBZ-5340
  • MySQL 连接器无法为 MySQL 8.x 转换未签名的 tinyint 数据类型。DBZ-5343
  • 当 Oracle 连接器检测到一个不受支持的 LogMiner 操作时,它会记录警告信息。DBZ-5351
  • 当唯一索引基于系统和非系统生成的列时,Oracle 连接器会抛出 NullPointerException。DBZ-5356
  • 修复了列哈希 v2 无法用于 MySQL 连接器的问题。DBZ-5366
  • 修复了 JSON 扩展失败的问题,用于包含第一个数组不包含元素的嵌套阵列。DBZ-5367
  • 修复了一个在使用带有 MongoDB 兼容性的 AWS DocumentDB 时,MongoDB 连接器连接失败的错误。DBZ-5371
  • 修复了 Oracle 连接器以意外格式记录 CommitScn 的问题。DBZ-5381
  • 修复了 PostgreSQL 连接器错误 org.postgresql.util.PSQLException: Bad value for type timestamp/date/time: CURRENT_TIMESTAMP。DBZ-5384
  • 修复了在历史记录主题中缺少 previousID 属性的 MySQL 连接器的问题。DBZ-5386
  • 检查约束根据 schema 更改事件中的约束引入了一个列。DBZ-5390
  • 修复了 PostgreSQL 连接器捕获为 PRIMARY KEY 引用的列时发生的问题,但没有在表中定义匹配的列。DBZ-5398
  • 在将 Oracle 与可插拔数据库支持 DBZ-5399搭配使用时,明确指定 signal.data.collection 的文档
  • PostgreSQL 连接器现在使用 GMT 指定时间戳。DBZ-5403
  • 临时和增量快照现在支持 额外的条件 参数,用于指定要捕获的数据子集。DBZ-5327
  • 添加逻辑来启用 Oracle 连接器,以便在流 DBZ-5441过程中安全地不支持的非关系表
  • SQL Server 连接器任务现在在 "Socket closed" 异常后重启。DBZ-5478
  • 在正则表达式主题命名策略中增加唯一性键字段/值。DBZ-5480
  • MySqlErrorHandler 应处理 SocketException DBZ-5486
  • MySQL 连接器现在在连接器模式中添加数据库列注释。DBZ-5489
  • 在 schema 历史记录消息中公开默认值和枚举值。DBZ-5511
  • 在 BinaryHandlingMode DBZ-5544中支持 BASE64_URL_SAFE
  • 在提交源数据库 DBZ-5557 的偏移时提供分区
  • 传统的快照进程设置 source.ts_ms.DBZ-5591
  • 清理"逻辑名称"配置。DBZ-5594
  • MySQL Connector 现在捕获 TRUNCATE 事件。DBZ-5610
  • 明确了文档中的 include/exclude 选项的语义。DBZ-5625
  • 现在,您可以在发出更改事件时将 MongoDB 连接器配置为包含 before 字段。DBZ-5628
  • 在 PostgreSQL 连接器中记录非递增快照的增强。DBZ-5639
  • 通过减少 REGEXP_LIKE Disjunctions 来提高 LogMiner 查询性能。DBZ-5648
  • 您可以配置 MongoDB 连接器尝试向服务器发送心跳消息的频率。DBZ-5736
  • 增强了清理主题名称 DBZ-5790 的功能
  • 现在,您可以配置 flush.lsn.source,以防止 PostgreSQL 连接器自动将已处理的记录的 LSN 提交到数据库。DBZ-5811
  • 现在,您可以使用 ComputePartition SMT 根据某些字段将数据路由到特定的主题分区。DBZ-5847
  • 现在,您可以配置 event.processing.failure.handling.mode,以启用 PostgreSQL 连接器跳过失败的 LSN 检查。DBZ-6012
  • 现在,当您在可插拔数据库部署(CDB)中使用 Oracle 连接器时,连接器偏移会预先正确地进行。DBZ-6125

3.6. 技术预览功能

重要

技术预览功能不被红帽产品服务级别协议(SLA)支持,且可能无法完成。红帽不推荐在生产环境中实施任何技术预览功能。技术预览功能为用户提供了一个对最新的产品创新的试用机会,以便用户可以对其进行测试并提供反馈。如需有关支持范围的更多信息,请参阅 技术预览功能支持范围

Debezium 包括以下技术预览功能:

并行初始快照
您可以通过将 snapshot.max.threads 属性设置为大于 1 的值,将基于 SQL 的连接器配置为在执行初始快照时使用多个线程。
MongoDB 连接器的临时和增量快照
提供重新运行之前捕获快照的表快照的机制。
CloudEvents converter
发出更改事件,记录符合 CloudEvents 规格。CloudEvents 更改事件 envelope 可以是 JSON 或 Avro,每个 envelope 类型支持 JSON 或 Avro 作为 数据格式。CloudEvents 更改事件 envelope 支持 Avro 编码更改事件 envelope 可以是 JSON 或 Avro,每个 envelope 类型支持 JSON 或 Avro 作为 数据格式
基于内容的路由
根据事件内容,提供将所选事件重新定向到特定主题的机制。
自定义开发的转换器
如果默认数据类型转换无法满足您的需要,您可以创建自定义转换器来与连接器一起使用。
过滤 SMT
允许您指定希望连接器发送到代理的记录子集。
MongoDB 连接器的信号
提供修改连接器行为或触发一次性操作的机制,如启动表 的临时快照
使用 Oracle 连接器的 BLOBCLOBNCLOB 数据类型
Oracle 连接器可以使用 Oracle 大对象类型。

第 4 章 Camel K 发行注记

Camel K 是一个轻量级集成框架,从 Apache Camel K 构建,它在 OpenShift 上的云中原生运行。Camel K 专为无服务器和微服务架构而设计。您可以使用 Camel K 在 OpenShift 上直接运行使用 Camel 域特定语言(DSL)编写的集成代码。

将 Camel K 与 OpenShift Serverless 和 Knative 搭配使用,容器仅根据需要自动创建,并在负载下自动缩放为零。这消除了服务器调配和维护的开销,使您能够专注于应用程序开发。

将 Camel K 与 OpenShift Serverless 和 Knative Eventing 搭配使用,您可以管理系统中的组件如何在事件驱动的架构中进行通信。这通过使用发布/订阅或事件流化模型以及事件生产者和消费者之间的分离关系,提供灵活性和提高效率。

4.1. Camel K 功能

Camel K 提供与以下主要功能进行云原生集成:

  • 用于自动扩展和缩减为零的 Knative Serving
  • 用于事件驱动的架构的 Knative Eventing
  • 默认情况下,使用 Quarkus 运行时的性能优化
  • 使用 Java 或 YAML DSL 编写的 Camel 集成
  • 使用 OpenShift 中的 Prometheus 监控集成
  • Quickstart 教程
  • kamelet Catalog (连接器)到外部系统,如 AWS、JIRA 和 Salesforce
  • 支持 Timer 和 Log Kamelets
  • 支持 IBM MQ 连接器
  • 支持 Oracle 19 数据库

4.2. 支持的配置

有关 Camel K 支持的配置、标准和组件的详情,请查看以下客户门户网站文章:

4.2.1. Camel K Operator 元数据

Camel K 包括更新的 Operator 元数据,用于从 OpenShift OperatorHub 安装 Camel K。此 Operator 元数据包括用于发行版本打包的 Operator 捆绑包格式,用于 OpenShift Container Platform 4.6 或更高版本。

4.3. 重要备注

Red Hat Integration - Camel K 发行版本的重要备注:

从 Red Hat Integration 中删除对 metering 标签的支持 - Camel K
Camel K Operator 和 pod 的 metering 标签不再被支持。
Red Hat Integration 的安全更新 - Camel K
有关如何应用此更新的详情,请参阅 如何将软件包更新应用到我的 RHEL 系统?
注意

在应用此安全更新前,您必须将所有之前发布的勘误升级应用到您的系统。

支持在 ROSA 上运行 Camel K
Camel K 现在支持在 Red Hat OpenShift Service on AWS (ROSA)上运行。
在 Camel K 中支持 IBM MQ 源连接器
IBM MQ 源连接器 kamelet 添加到最新的 Camel K。
支持 Oracle 19
Camel K 现在支持 Oracle 19。如需更多信息 ,请参阅支持的配置页面
在 Windows 机器上使用 Camel K CLI 命令
当在 Windows 计算机上使用 kamel cli 命令时,命令中的 resource 选项中的路径必须使用 linux 格式。例如:
//Windows path
kamel run file.groovy --dev --resource file:C:\user\folder\tempfile@/tmp/file.txt

//Must be converted to
kamel run file.groovy --dev --resource file:C:/user/folder/tempfile@/tmp/file.txt
Red Hat Integration - Camel K Operator 镜像大小被增加
从 Red Hat Integration - Camel K 1.10.1.redhat-00026 开始,Camel K Operator 镜像的大小会加倍。
YAML DSL 中接受的 Camel 问题单表示法
从 Red Hat Integration - Camel K 1.10.1.redhat-00026 开始,YAML DSL 将接受 camel case 标记(即 setBody)以及 snake case (如 set-body)。请注意,在语法中有一些区别,因为 schema 会受到 Camel 版本的变化。

4.4. 支持的 Camel Quarkus 扩展

本节列出了此 Camel K 发行版本支持的 Camel Quarkus 扩展(只在 Camel K 应用程序中使用时)。

注意

只有在 Camel K 应用程序内使用时,才支持这些 Camel Quarkus 扩展。这些 Camel Quarkus 扩展不支持在独立模式中使用(没有 Camel K)。

4.4.1. 支持的 Camel Quarkus 连接器扩展

下表显示了此 Camel K 发行版本支持的 Camel Quarkus 连接器扩展(只在 Camel K 应用程序中使用时)。

Expand
名称软件包

attachments

camel-quarkus-attachments

AWS DynamoDB

camel-quarkus-aws-ddb

AWS 2 Kinesis

camel-quarkus-aws2-kinesis

AWS 2 Lambda

camel-quarkus-aws2-lambda

AWS 2 S3 Storage Service

camel-quarkus-aws2-s3

AWS 2 Simple Notification System (SNS)

camel-quarkus-aws2-sns

AWS 2 Simple Queue Service (SQS)

camel-quarkus-aws2-sqs

Azure Storage Blob (技术预览)

camel-quarkus-azure-storage-blob

Azure Storage Queue (技术预览)

camel-quarkus-azure-storage-queue

Bean

camel-quarkus-bean

Bean Validator

camel-quarkus-bean-validator

浏览

camel-quarkus-browse

Cassandra CQL

camel-quarkus-cassandraql

Core

camel-quarkus-core

cron

camel-quarkus-cron

CXF

camel-quarkus-cxf-soap

dataformat

camel-quarkus-dataformat

直接

camel-quarkus-direct

File

camel-quarkus-file

FHIR

camel-quarkus-fhir

FTP

camel-quarkus-ftp

Google BigQuery

camel-quarkus-google-bigquery

Google Pubsub

camel-quarkus-google-pubsub

HTTP

camel-quarkus-http

Infinispan

camel-quarkus-infinispan

jira

camel-quarkus-jira

JMS

camel-quarkus-jms

JPA

camel-quarkus-jpa

JTA

camel-quarkus-jta

Kafka

camel-quarkus-kafka

kamelet

camel-quarkus-kamelet

Kubernetes

camel-quarkus-kubernetes

Log

camel-quarkus-log

Mail

camel-quarkus-mail

MicroProfile Fault Tolerance

camel-quarkus-microprofile-fault-tolerance

MicroProfile Health

camel-quarkus-microprofile-health

MicroProfile Metrics

camel-quarkus-microprofile-metrics

MLLP

camel-quarkus-mllp

Mock

camel-quarkus-mock

MongoDB

camel-quarkus-mongodb

Netty

camel-quarkus-netty

OpenAPI Java

camel-quarkus-openapi-java

paho

camel-quarkus-camel-quarkus-paho

Paho MQTT 5

camel-quarkus-paho-mqtt5

Platform HTTP

camel-quarkus-platform-http

quartz

camel-quarkus-quartz

rest

camel-quarkus-rest

REST OpenApi

camel-quarkus-rest-openapi

Salesforce

camel-quarkus-salesforce

SEDA

camel-quarkus-seda

Slack

camel-quarkus-slack

SQL

camel-quarkus-sql

telegram

camel-quarkus-telegram

计时器

camel-quarkus-timer

验证器

camel-quarkus-validator

XQuery

camel-quarkus-saxon

zip 文件

camel-quarkus-zipfile

4.4.2. 支持的 Camel Quarkus dataformat 扩展

下表显示了此 Camel K 发行版本支持的 Camel Quarkus 形式扩展(只在 Camel K 应用程序中使用时)。

Expand
名称软件包

Avro

camel-quarkus-avro

Avro Jackson

camel-quarkus-jackson-avro

bindy (用于 CSV)

camel-qaurkus-bindy

HL7

camel-quarkus-hl7

Jackson

camel-quarkus-jackson

JacksonXML

camel-quarkus-jacksonxml

JAXB

camel-quarkus-jaxb

JSON Gson

camel-quarkus-gson

protobuf Jackson

camel-quarkus-jackson-protobuf

SOAP dataformat

camel-quarkus-soap

4.4.3. 支持的 Camel Quarkus 语言扩展

在本发行版本中,Camel K 支持以下 Camel Quarkus 语言扩展(用于 Camel 表达式和 predicates):

  • Bean 方法
  • 常数
  • ExchangeProperty
  • File
  • 标头
  • HL7 Terser
  • Ref
  • Simple(简单)
  • Tokenize
  • JsonPath
  • XPath
  • XQuery

4.4.4. 支持的 Camel K traits

在本发行版本中,Camel K 支持以下 Camel K traits。

  • builder trait
  • Camel trait
  • Container trait
  • dependencies trait
  • deployer trait
  • Deployment trait
  • 环境特征
  • JVM 特征
  • kamelets trait
  • owner trait
  • Platform trait
  • 拉取 Secret 特征
  • Prometheus trait
  • Quarkus trait
  • route trait
  • Service trait
  • 错误处理程序特征

4.5. 支持的 Kamelets

下表列出了在安装 Camel K 操作器时作为 OpenShift 资源提供的 kamelets。

有关这些 kamelets 的详情,请访问: https://github.com/openshift-integration/kamelet-catalog/tree/kamelet-catalog-1.8

有关如何使用 kamelet 连接应用程序和服务的详情,请参考 https://access.redhat.com/documentation/zh-cn/red_hat_integration/2022.q3/html-single/integrating_applications_with_kamelets

重要

技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。

这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。有关红帽技术预览功能支持范围的更多信息,请参阅 https://access.redhat.com/support/offerings/techpreview

Expand
表 4.1. Camel K operator 提供的 kamelets
kamelet文件名Type (Sink, Source, Action)

Ceph sink

ceph-sink.kamelet.yaml

sink

Ceph 源

ceph-source.kamelet.yaml

JIRA Add Comment sink

jira-add-comment-sink.kamelet.yaml

sink

JIRA Add Issue sink

jira-add-issue-sink.kamelet.yaml

sink

JIRA Transition Issue sink

jira-transition-issue-sink.kamelet.yaml

sink

JIRA 更新问题接收器

jira-update-issue-sink.kamelet.yaml

sink

avro Deserialize 操作

avro-deserialize-action.kamelet.yaml

操作(数据转换)

avro Serialize 操作

avro-serialize-action.kamelet.yaml

操作(数据转换)

AWS DynamoDB sink

aws-ddb-sink.kamelet.yaml

sink

AWS Redshift sink

aws-redshift-sink.kamelet.yaml

sink

AWS 2 Kinesis sink

aws-kinesis-sink.kamelet.yaml

sink

AWS 2 Kinesis 源

aws-kinesis-source.kamelet.yaml

AWS 2 Lambda sink

aws-lambda-sink.kamelet.yaml

sink

AWS 2 Simple Notification System sink

aws-sns-sink.kamelet.yaml

sink

AWS 2 Simple Queue Service sink

aws-sqs-sink.kamelet.yaml

sink

AWS 2 Simple Queue Service source

aws-sqs-source.kamelet.yaml

AWS 2 Simple Queue Service FIFO sink

aws-sqs-fifo-sink.kamelet.yaml

sink

AWS 2 S3 sink

aws-s3-sink.kamelet.yaml

sink

AWS 2 S3 源

aws-s3-source.kamelet.yaml

AWS 2 S3 Streaming Upload sink

aws-s3-streaming-upload-sink.kamelet.yaml

sink

Azure Storage Blob Source (技术预览)

azure-storage-blob-source.kamelet.yaml

Azure Storage Blob Sink (技术预览)

azure-storage-blob-sink.kamelet.yaml

sink

Azure Storage Queue Source (技术预览)

azure-storage-queue-source.kamelet.yaml

Azure Storage Queue Sink (技术预览)

azure-storage-queue-sink.kamelet.yaml

sink

Cassandra sink

cassandra-sink.kamelet.yaml

sink

Cassandra 源

cassandra-source.kamelet.yaml

提取字段操作

extract-field-action.kamelet.yaml

操作

FTP sink

ftp-sink.kamelet.yaml

sink

FTP 源

ftp-source.kamelet.yaml

具有标头键过滤器操作

has-header-filter-action.kamelet.yaml

操作(数据转换)

Hoist Field 操作

hoist-field-action.kamelet.yaml

操作

HTTP sink

http-sink.kamelet.yaml

sink

插入字段操作

insert-field-action.kamelet.yaml

操作(数据转换)

插入标头操作

insert-header-action.kamelet.yaml

操作(数据转换)

是 Tombstone Filter 操作

is-tombstone-filter-action.kamelet.yaml

操作(数据转换)

JIRA 源

jira-source.kamelet.yaml

JMS sink

jms-amqp-10-sink.kamelet.yaml

sink

JMS 源

jms-amqp-10-source.kamelet.yaml

JMS IBM MQ sink

jms-ibm-mq-sink.kamelet.yaml

sink

JMS IBM MQ 源

jms-ibm-mq-source.kamelet.yaml

JSON Deserialize 操作

json-deserialize-action.kamelet.yaml

操作(数据转换)

JSON Serialize 操作

json-serialize-action.kamelet.yaml

操作(数据转换)

Kafka 接收器

kafka-sink.kamelet.yaml

sink

Kafka 源

kafka-source.kamelet.yaml

Kafka 主题名称过滤器操作

topic-name-matches-filter-action.kamelet.yaml

操作(数据转换)

日志 sink (用于开发和测试目的)

log-sink.kamelet.yaml

sink

MariaDB sink

mariadb-sink.kamelet.yaml

sink

掩码字段操作

mask-field-action.kamelet.yaml

操作(数据转换)

消息时间戳路由器操作

message-timestamp-router-action.kamelet.yaml

操作(路由器)

MongoDB sink

mongodb-sink.kamelet.yaml

sink

MongoDB 源

mongodb-source.kamelet.yaml

MySQL sink

mysql-sink.kamelet.yaml

sink

PostgreSQL sink

postgresql-sink.kamelet.yaml

sink

predicate 过滤器操作

predicate-filter-action.kamelet.yaml

action (router/filter)

protobuf Deserialize 操作

protobuf-deserialize-action.kamelet.yaml

操作(数据转换)

protobuf Serialize 操作

protobuf-serialize-action.kamelet.yaml

操作(数据转换)

Regex Router 操作

regex-router-action.kamelet.yaml

操作(路由器)

替换 Field 操作

replace-field-action.kamelet.yaml

操作

Salesforce 创建

salesforce-create-sink.kamelet.yaml

sink

Salesforce Delete

salesforce-delete-sink.kamelet.yaml

sink

Salesforce 更新

salesforce-update-sink.kamelet.yaml

sink

SFTP sink

sftp-sink.kamelet.yaml

sink

SFTP 源

sftp-source.kamelet.yaml

Slack 源

slack-source.kamelet.yaml

SQL Server 数据库接收器

sqlserver-sink.kamelet.yaml

sink

telegram 源

telegram-source.kamelet.yaml

throttle 操作

throttle-action.kamelet.yaml

操作

定时器来源(用于开发和测试目的)

timer-source.kamelet.yaml

时间戳路由器操作

timestamp-router-action.kamelet.yaml

操作(路由器)

Key 操作的值

value-to-key-action.kamelet.yaml

操作(数据转换)

4.6. Camel K 已知问题

以下已知问题适用于 Camel K:

ENTESB-15306 - Camel K 和 Fuse Online 之间的 CRD 冲突

如果同一 OpenShift 集群中安装了旧版本的 Camel K,从 OperatorHub 安装 Camel K 会失败,因为自定义资源定义冲突。例如,这包括以前在 Fuse Online 中提供的较旧版本的 Camel K。

作为临时解决方案,您可以在不同的 OpenShift 集群中安装 Camel K,或者在安装 Camel K 前输入以下命令:

$ oc get crds -l app=camel-k -o json | oc delete -f -

ENTESB-15858 - 添加了在本地或作为容器镜像打包和运行 Camel 集成的功能

在本地打包并运行 Camel 集成或作为容器镜像当前没有包括在 Camel K 中,并只提供社区支持。

如需了解更多详细信息,请参阅 Apache Camel K 社区

ENTESB-16477 - Unable to download jira client dependencies with productized build

使用 Camel K operator 时,集成无法找到 jira 客户端的依赖项。解决办法是手动添加 atlassian 存储库。

apiVersion: camel.apache.org/v1
kind: IntegrationPlatform
metadata:
  labels:
    app: camel-k
  name: camel-k
spec:
  configuration:
  - type: repository
    value: <atlassian repo here>

ENTESB-17033 - Camel-K ElasticsearchComponent options ignored

在配置 Elasticsearch 组件时,Camel K ElasticsearchComponent 选项会被忽略。在使用 Elasticsearch 组件时,要添加 getContext ().setAutowiredEnabled (false)

ENTESB-17061 - 无法使用非管理员用户运行 mongo-db-source kamelet 路由 - 因为 null 无法启动路由 mongodb-source-1

无法使用非管理员用户凭证运行 mongo-db-source kamelet 路由。组件的某些部分需要 admin 凭证,因此无法以非 admin 用户身份运行路由。

4.7. Camel K 修复的问题

以下小节列出了 Red Hat Integration - Camel K 1.10.1.redhat-00026 中修复的问题:

4.7.1. Camel K 1.10.1.redhat-00026 中的功能请求

下表列出了 Camel K 1.10.1.redhat-00026 中的功能请求:

Expand
表 4.2. Camel K 1.10.1.redhat-00026 功能请求
问题描述

CMLK-590

通过 "extract-field-action" 修剪提取的字符串数据功能

4.7.2. Camel K 1.10.1.redhat-00026 中解决的错误

下表列出了 Camel K 1.10.1.redhat-00026 中已解析的错误:

Expand
表 4.3. Camel K 1.10.1.redhat-00026 解决的错误
问题描述

CMLK-774

"runtime error: 无效内存地址或 nil pointer dereference" from kamel promote 命令

CMLK-653

kamel 卸载在全局 Operator 时不会删除 IntegrationPlatform

CMLK-554

回归 - CK 和 Knative 比 KService 保持一致

CMLK-277

Dockerfile fuse-camel-k-prod-operator-metadata 包含标签 v4.6

CMLK-275

支持的 Kamelets 与 Camel 组件不匹配

CMLK-560

在 'kamel promote' 命令中无效的 Semantic Version

CMLK-268

JIRA source - 在轮询延迟中创建多个问题时的重复消息

CMLK-161

kamelet-catalog:一些版本占位符没有在 BOM 中管理

CMLK-610

CVE-2023-1436 jettison: Un controlled Recursion in JSONArray [rhint-camel-k-1]

CMLK-721

CVE-2021-46877 jackson-databind: 如果使用 JDK 序列化序列化 JsonNode [rhint-camel-k-1],则 Possible DoS

CMLK-120

CVE-2022-4492 undertow: https 连接中的服务器身份不会被 undertow 客户端 [rhint-camel-k-1] 检查

CMLK-118

CVE-2022-24999 qs: express: "qs"proto poisoning 会导致节点进程挂起 [rhint-camel-k-1]

CMLK-93

ClassNotFoundException Jira kamelet binding in native mode

CMLK-141

CVE-2022-41946 jdbc-postgresql: postgresql-jdbc: Information leak of prepared 语句数据因为不安全的临时文件权限 [rhint-camel-k-1]

CMLK-117

CVE-2022-46363 CXF: Apache CXF: 目录列出 / 代码 exfiltration [rhint-camel-k-1]

CMLK-133

CVE-2022-1471 snakeyaml: Constructor Deserialization Remote Code Execution [rhint-camel-k-1]

CMLK-142

CVE-2022-4245 codehaus-plexus: XML External Entity (XXE) Injection [rhint-camel-k-1]

CMLK-137

CVE-2022-4244 codehaus-plexus: Directory Traversal [rhint-camel-k-1]

CMLK-124

CVE-2022-39368 scandium: Failing DTLS handshakes 可能会导致节流处理记录 [rhint-camel-k-1]

CMLK-628

CVE-2023-1370 json-smart: Un control Resource Consumption vulnerability in json-smart (Resource Exhaustion)[rhint-camel-k-1.10]

CMLK-815

CVE-2022-42003 Vulnerable artifact jackson-databind during CK 1.10.1 CK6 MRRC repo zip file

第 5 章 Camel Spring Boot 发行注记

5.1. Camel Spring Boot 功能

Camel Spring Boot 引入了对 Spring Boot 的 Camel 支持,它为许多 Camel 组件提供 Camel 和启动程序自动配置。在 Spring 上下文中提供了 Camel 上下文自动探测 Camel 路由的建议自动配置,并将密钥 Camel 实用程序(如制作者模板、消费者模板和类型转换器)注册为 beans。

  • 有关 Camel Spring Boot 中支持的平台、配置和数据库的详情,请查看客户门户网站中的支持的配置页面(需要登录)。
  • 有关 Red Hat Camel Spring Boot 扩展列表,请参阅 Camel Spring Boot 参考 (需要登录)。

5.3. 重要备注

Camel Spring Boot 组件的文档包括在 Camel Spring Boot 参考 中。本参考指南中将添加其他 Camel Spring Boot 组件的文档。

从 Fuse 7.11 迁移到 Camel Spring Boot
此发行版本包含一个 迁移指南,记录在 Camel Spring Boot 上成功运行和部署 Fuse 7.11 应用程序所需的更改。它提供了有关如何解决部署和运行时问题的信息,以及防止应用程序行为的更改。迁移是迁移至 Camel Spring Boot 平台的第一步。应用程序成功部署并运行后,用户可以计划升级各个组件以使用 Camel Spring Boot 的新功能和功能。
支持 EIP 断路器
Camel Spring Boot 的 Circuit Breaker EIP 支持 Resilience4j 配置。此配置提供了与 Resilience4j 集成,以用作 Camel 路由中的 Circuit Breaker。
技术预览扩展

以下扩展作为 CSB 3.20 发行版本的一个技术预览被支持。

  • camel-spring-batch-starter
  • camel-spring-jdbc-starter
  • camel-spring-ldap-starter
  • camel-spring-rabbitmq-starter
  • camel-spring-redis-starter
  • camel-spring-security-starter
  • camel-spring-ws-starter

5.4. Camel Spring Boot 修复的问题

以下小节列出了 Camel Spring Boot 中修复的问题。

5.4.1. Camel Spring Boot 版本 3.20.1.1 修复的问题

下表列出了 Camel Spring Boot 版本 3.20.1.1 中已解析的错误。

Expand
表 5.1. Camel Spring Boot 版本 3.20.1.1 Resolved Bugs
问题描述

CSB-1524

CVE-2022-31690 spring-security-oauth2-client: Privilege Escalation in spring-security-oauth2-client [rhint-camel-spring-boot-3]

CSB-1718

CVE-2023-20883 spring-boot: Spring Boot Welcome Page DoS Vulnerability [rhint-camel-spring-boot-3.20]

CSB-1719

CVE-2023-24815 vertx-web: StaticHandler 在 Windows 上分离,当挂载到通配符路由 [rhint-camel-spring-boot-3.20]

CSB-1760

CXF TrustedAuthorityValidatorTest failure

CSB-1821

backport CAMEL-19421 - Camel-Jira: 在 FileConverter 中使用 Files.createTempFile,而不是直接创建文件

5.4.2. Camel Spring Boot 版本 3.18.3.1 修复的问题

下表列出了 Camel Spring Boot 版本 3.18.3.1 中已解析的错误。

Expand
表 5.2. Camel Spring Boot 版本 3.18.3.1 解决的错误
问题描述

CSB-656

CVE-2022-25857 snakeyaml: Denial of Service due due missing nested depth limitations for collections [rhint-camel-spring-boot-3]

CSB-714

CVE-2022-38752 snakeyaml: Uncaught exception in java.base/java.util.ArrayList.hashCode [rhint-camel-spring-boot-3]

CSB-715

CVE-2022-38751 snakeyaml: Uncaught exception in java.base/java.util.regex.Pattern$Ques.match [rhint-camel-spring-boot-3]

CSB-716

CVE-2022-38750 snakeyaml: Uncaught exception in org.yaml.snakeyaml.constructor.constructObject [rhint-camel-spring-boot-3]

CSB-717

CVE-2022-38749 snakeyaml: Uncaught exception in org.yaml.snakeyaml.composer.Composer.composeSequenceNode [rhint-camel-spring-boot-3]

CSB-719

CVE-2022-42003 jackson-databind: deep wrapper array nesting wrt UNWRAP_SINGLE_VALUE_ARRAYS [rhint-camel-spring-boot-3]

CSB-720

CVE-2022-42004 jackson-databind: 使用 deeply nested array [rhint-camel-spring-boot-3]

CSB-1540

CVE-2023-1370 json-smart: Un control Resource Consumption vulnerability in json-smart (Resource Exhaustion)[rhint-camel-spring-boot-3.18]

CSB-1702

CVE-2023-1436 jettison: Un controlled Recursion in JSONArray [rhint-camel-spring-boot-3]

CSB-1703

CVE-2022-46364 CXF: Apache CXF: SSRF Vulnerability [rhint-camel-spring-boot-3]

CSB-1704

CVE-2022-46363 CXF: Apache CXF: 目录列出 / 代码 exfiltration [rhint-camel-spring-boot-3]

CSB-1705

CVE-2022-45047 sshd-common: mina-sshd: Java unsafe deserialization 漏洞

CSB-1711

CVE-2022-25857 snakeyaml: Denial of Service due due missing nested depth limitations for collections [rhint-camel-spring-boot-3]

CSB-1712

CVE-2022-41854 dev-java-snakeyaml: dev-java/snakeyaml: DoS via stack overflow [rhint-camel-spring-boot-3]

CSB-1713

CVE-2022-40156 xstream: Xstream to serialise XML 数据会受到 Denial Service 攻击 [rhint-camel-spring-boot-3]

CSB-1714

CVE-2022-40152 woodstox-core: woodstox to serialise XML 数据易受 Denial Service 攻击 [rhint-camel-spring-boot-3]

CSB-1717

CVE-2023-20883 spring-boot: Spring Boot Welcome Page DoS Vulnerability [rhint-camel-spring-boot-3.18]

CSB-1732

CXF 测试在 undertow 版本 update 2.2.24.SP1-redhat-00001 后失败

CSB-1821

backport CAMEL-19421 - Camel-Jira: 在 FileConverter 中使用 Files.createTempFile,而不是直接创建文件

CSB-1947

CXF TrustedAuthorityValidatorTest failure

5.4.3. Camel Spring Boot 版本 3.20 修复的问题

下表列出了 Camel Spring Boot 版本 3.20 中已解析的错误。

Expand
表 5.3. Camel Spring Boot 版本 3.20 解决的错误
问题描述

CSB-656

CVE-2022-25857 snakeyaml: Denial of Service due due missing nested depth limitations for collections [rhint-camel-spring-boot-3]

CSB-699

CVE-2022-40156 xstream: Xstream to serialise XML 数据会受到 Denial Service 攻击 [rhint-camel-spring-boot-3]

CSB-702

CVE-2022-40152 woodstox-core: woodstox to serialise XML 数据易受 Denial Service 攻击 [rhint-camel-spring-boot-3]

CSB-703

CVE-2022-40151 xstream: Xstream to serialise XML 数据会受到 Denial Service 攻击 [rhint-camel-spring-boot-3]

CSB-714

CVE-2022-38752 snakeyaml: Uncaught exception in java.base/java.util.ArrayList.hashCode [rhint-camel-spring-boot-3]

CSB-715

CVE-2022-38751 snakeyaml: Uncaught exception in java.base/java.util.regex.Pattern$Ques.match [rhint-camel-spring-boot-3]

CSB-716

CVE-2022-38750 snakeyaml: Uncaught exception in org.yaml.snakeyaml.constructor.constructObject [rhint-camel-spring-boot-3]

CSB-717

CVE-2022-38749 snakeyaml: Uncaught exception in org.yaml.snakeyaml.composer.Composer.composeSequenceNode [rhint-camel-spring-boot-3]

CSB-719

CVE-2022-42003 jackson-databind: deep wrapper array nesting wrt UNWRAP_SINGLE_VALUE_ARRAYS [rhint-camel-spring-boot-3]

CSB-720

CVE-2022-42004 jackson-databind: 使用 deeply nested array [rhint-camel-spring-boot-3]

CSB-721

CVE-2022-41852 JXPath: 不受信任的 XPath 表达式可能会导致 RCE 攻击 [rhint-camel-spring-boot-3]

CSB-722

CVE-2022-41853 hsqldb: Untrusted 输入可能会导致 RCE 攻击 [rhint-camel-spring-boot-3]

CSB-751

CVE-2022-33681 org.apache.pulsar-client: Apache Pulsar: Apache Pulsar: Improper Hostname 验证 Java 客户端,代理可以通过 MITM [rhint-camel-spring-boot-3] 公开身份验证数据

CSB-794

CVE-2022-40150 jettison: memory exhaustion via user-supplied XML 或 JSON 数据 [rhint-camel-spring-boot-3]

CSB-811

CVE-2022-39368 scandium: Failing DTLS handshakes 可能会导致节流处理记录 [rhint-camel-spring-boot-3]

CSB-813

CVE-2022-31777 apache-spark: XSS vulnerability in log viewer UI Javascript [rhint-camel-spring-boot-3]

CSB-819

camel-kafka-starter: KafkaConsumerHealthCheckIT 无法正常工作

CSB-820

l2x6 cq-maven-plugin 设置错误版本 camel-avro-rpc-component

CSB-851

camel-cxf-rest-starter: EchoService 不是 JDK 17 上的接口错误

CSB-852

camel-infinispan-starter : 测试在启用了 FIPS 的环境中失败

CSB-883

CVE-2022-37866 apache-ivy: : Apache Ivy: Ivy Path traversal [rhint-camel-spring-boot-3]

CSB-904

CVE-2022-41881 codec-haproxy: HAProxyMessageDecoder Stack Exhaustion DoS [rhint-camel-spring-boot-3]

CSB-905

CVE-2022-41854 dev-java-snakeyaml: dev-java/snakeyaml: DoS via stack overflow [rhint-camel-spring-boot-3]

CSB-906

[archetype] OMP version in openshift profile

CSB-929

CVE-2022-38648 batik: Server-Side Request Forgery [rhint-camel-spring-boot-3]

CSB-930

CVE-2022-38398 batik: Server-Side Request Forgery [rhint-camel-spring-boot-3]

CSB-931

CVE-2022-40146 batik: Server-Side Request Forgery (SSRF)安全漏洞 [rhint-camel-spring-boot-3]

CSB-942

CVE-2022-4492 undertow: https 连接中的服务器身份不会被 undertow 客户端 [rhint-camel-spring-boot-3] 检查

CSB-1203

CVE-2022-45047 sshd-common: mina-sshd: Java unsafe deserialization 漏洞

CSB-1239

SAP quickstart spring-boot 示例具有循环参考

CSB-1242

当在 FIPS 模式下使用 openJDK11 运行时,camel-salesforce-maven-plugin:3.20.1 会失败

CSB-1274

CVE-2021-37533 apache-commons-net: FTP 客户端默认信任 PASV 响应中的主机 [rhint-camel-spring-boot-3]

CSB-1334

CVE-2023-24998 tomcat: Apache Commons FileUpload: FileUpload DoS 带有过量部分 [rhint-camel-spring-boot-3]

CSB-1335

CVE-2022-41966 xstream: Denial of Service:基于元素的哈希值来注入递归集合或映射,这增加了一个堆栈溢出 [rhint-camel-spring-boot-3]

CSB-1373

FIPS-mode: Invalid algorythms and security issues on some camel 组件

CSB-1404

Spring Boot 版本在 BOM 中出错

CSB-1436

CVE-2023-20860 springframework: Security Bypass with Un-Prefixed Double Wildcard Pattern [rhint-camel-spring-boot-3]

CSB-1437

CVE-2023-20861 springframework: Spring Expression DoS Vulnerability [rhint-camel-spring-boot-3]

CSB-1441

CVE-2022-42890 batik: 在 Apache XML Graphics Batik [rhint-camel-spring-boot-3] 中的不可信代码执行

CSB-1442

CVE-2022-41704 batik: Apache XML Graphics Batik 通过 SVG [rhint-camel-spring-boot-3] 安全漏洞执行代码

CSB-1443

CVE-2022-37865 apache-ivy: Directory Traversal [rhint-camel-spring-boot-3]

CSB-1444

CVE-2023-22602 shiro-core: 通过特殊的精心设计的 HTTP 请求[rhint-camel-spring-boot-3] 绕过身份验证

CSB-1482

CVE-2023-1436 jettison: Un controlled Recursion in JSONArray [rhint-camel-spring-boot-3]

CSB-1499

camel-openapi-rest-dsl-generator 生成的类不会添加到 jar

CSB-1533

[cxfrs-component] camel-cxf-rest-starter 需要 cxf-spring-boot-autoconfigure

CSB-1536

CVE-2023-20863 springframework: Spring Expression DoS Vulnerability [rhint-camel-spring-boot-3.14]

CSB-1540

CVE-2023-1370 json-smart: Un control Resource Consumption vulnerability in json-smart (Resource Exhaustion)[rhint-camel-spring-boot-3.18]

下表列出了 Camel Spring Boot 版本 3.18 Patch 1 中的已解决的问题

Expand
表 5.4. Camel Spring Boot 版本 3.18 Patch 1 解决的错误
问题描述

CSB-1537

CVE-2023-20863 springframework: Spring Expression DoS Vulnerability [rhint-camel-spring-boot-3.18]

CSB-1539

CVE-2023-1370 json-smart: Un control Resource Consumption vulnerability in json-smart (Resource Exhaustion)[rhint-camel-spring-boot-3.14]

第 6 章 Service Registry 发行注记

Service Registry 2.4 作为正式发行版本提供。Service Registry 是标准事件模式和 API 设计的数据存储,它基于 Apicurio Registry 开源社区项目。

注意

红帽构建的 Apicurio Registry 现在作为 Red Hat Application Foundations 的一部分提供。红帽构建的 Apicurio Registry 2.x 和 Red Hat Integration Service Registry 2.x 的功能相同。如需更多信息,请参阅 https://access.redhat.com/products/red-hat-application-foundations/

您可以使用 Service Registry 通过 Web 控制台、REST API、Maven 插件或 Java 客户端管理和共享数据的结构。例如,客户端应用程序可以动态地向 Service Registry 或从 Service Registry 推送最新的架构更新,而无需重新部署。您还可以创建可选规则来管理 Service Registry 内容随时间变化的方式。这些规则包括验证内容、工件引用的完整性,以及向后兼容或转发 schema 或 API 版本的兼容性。

6.1. Service Registry 安装选项

您可以使用以下数据存储选项之一在 OpenShift 上安装 Service Registry:

  • PostgreSQL 数据库
  • Red Hat AMQ Streams

如需了解更多详细信息,请参阅在 OpenShift 上安装和部署 Service Registry

6.2. Service Registry 支持的平台

Service Registry 2.4 支持以下平台:

  • Red Hat OpenShift Container Platform 4.13, 4.12, 4.11, 4.10
  • Red Hat OpenShift Service on AWS
  • Microsoft Azure Red Hat OpenShift
  • PostgreSQL 15、14、13、12
  • Red Hat AMQ Streams 2.4, 2.3, 2.2, 2.1
  • OpenJDK 17, 11

如需了解更多详细信息,请参阅以下文章:

Service Registry 2.4 还支持与以下产品集成:

  • Red Hat Single Sign-On (RH-SSO) 7.6
  • 红帽构建的 Debezium 2.1

6.3. Service Registry 新功能

Service Registry 2.4 包括以下新功能:

Service Registry 核心新功能
工件引用改进
  • 工件参考完整性规则 :您现在可以应用新的特定于工件的规则和全局规则,以便在创建或更新工件时强制实施工件引用的完整性。对于所有工件类型,该规则会检测重复的工件引用,并防止引用不存在的工件。对于工件类型的子集(Apache Avro、Google Protobuf、OpenAPI 和 AsyncAPI),该规则可确保所有工件引用都已映射。
  • Maven 插件中的自动工件引用检测 :对于工件类型的子集(Apache Avro、Google Protobuf 和 JSON Schema),在创建或更新工件时,Maven 插件现在可以自动识别并配置给定工件的所有工件引用。
  • Web 控制台中的工件引用 的视觉化:您可以在新的 References 选项卡中查看工件版本的入站和出站引用。REST API 现在支持检索入站和出站引用。在以前的版本中,REST API 只检索出站引用,Web 控制台不会显示引用。
  • 工件引用现在被视为内容 :此版本现在在计算内容哈希和 ID 时考虑工件引用,并在检查工件版本的兼容性时考虑工件引用。如果您上传具有不同引用的同一模式内容,您可以创建一个新的工件版本。
客户端 SDK 生成(OpenAPI)
此发行版本添加了一个新的 Web 控制台功能,以便用户从 OpenAPI 工件生成客户端 SDK。此功能使用 Microsoft 的 Kiota 来生成 SDK。该功能仅在浏览器中运行,无法使用 API 自动执行。如需更多信息,请参阅 https://github.com/microsoft/kiota
工件版本删除
此发行版本在 web 控制台中添加了新的 REST API 操作和新的 Delete 工件版本 设置,以便您通过使用 REST API 删除工件版本。在以前的版本中,工件版本不可变;您可以弃用或禁用它们,但不能删除它们。但是,有时需要删除工件版本,尽管语义有意义。例如,出于规范或策略的原因,您可能需要删除工件版本。
Core Registry REST API 的改进
  • 版本注释 API :您现在可以使用 REST API 向工件版本添加注释。Web 控制台中还不能使用管理注释。
  • export API 支持 Accept 标头中的 application/json :您现在可以在调用 /admin/export API 端点中发送 application/json 作为 Accept 标头的值。在以前的版本中,返回 application/json 格式的响应的唯一方法是使用 forBrowser 查询参数。现在,您可以使用查询参数或 Accept 标头。
  • 组管理 :您现在可以使用 REST API 直接管理工件组,而不是隐式作为工件创建的一部分。
Confluent 兼容性 REST API 的改进
  • 更新了对 Confluent 兼容性 API 的支持:添加了对 Confluent Schema Registry API 的版本 7 的支持。Service Registry 现在支持不同端点上的 v6 和 v7。
  • 可自定义的最多主题数 :现在,您可以使用 registry.ccompat.max-subjects 动态配置属性来自定义 ccompat API 返回的最大主题数量。
其他更改
  • serializer/deserializer 工件解析和内容哈希的解析 :SerDe 类现在可以使用 schema 的内容哈希解析工件协调。
  • Maven 插件选项为 minify Avro: 当使用 Maven 插件注册 Avro 模式时,您现在可以在注册前减去内容。
community-only :自定义工件类型

用户可以根据自己的自定义工件类型扩展 Service Registry,并删除对现有类型的支持。此功能仅适用于 Service Registry 的社区版本,且不被支持。

注意

为了提供此功能,REST API 中的 ArtifactTypeenum 改为一个简单的 字符串。如果您使用 REST API 客户端进行自定义集成,则可能需要在升级到较新的客户端后编辑代码。

Service Registry Operator 的新功能
对 HTTPS 的 Operator 支持
添加了对在 OpenShift 集群中配置 HTTPS 连接的支持。您可以分别创建包含证书和私钥的 Secret,名为 tls.crttls.key,并通过在 ApicurioRegistry 自定义资源定义(CRD)文件中设置 spec.configuration.security.https.secretName 字段来引用 Secret。然后,Service Registry Operator 可以在 Service Registry Service 资源上配置 HTTPS 端口。如果启用了 HTTPS,您可以通过将 spec.security.https.disableHttp 设置为 true 来禁用 HTTP 连接。
支持手动管理的 OpenShift 资源

现在,您可以禁用某些资源类型,以确保 Service Registry Operator 不会创建和管理这些资源,以便您可以手动配置它们。使用 Service Registry Operator 目前不支持的功能,手动配置为您提供了更大的灵活性。如果您禁用资源类型,则其现有实例将被删除。如果启用资源类型,Service Registry Operator 会尝试使用 app 标签(如 app=example-apicurioregistry)查找资源,并开始管理它。否则,Service Registry Operator 会创建一个新实例。您可以以这种方式禁用以下资源类型:

  • 入口
  • NetworkPolicy
  • PodDisruptionBudget
改进了日志级别配置
现在,您可以使用 ApicurioRegistry CRD 文件中的 spec.configuration.registryLogLevel 字段,为 Service Registry 和 Service Registry Operator 设置日志级别。这个新字段设置 Apicurio 应用程序组件的日志级别(不包括非Apicurio 组件和库),这与 spec.configuration.logLevel 字段(适用于非Apicurio 组件和库)不同。现在,您可以通过在 Operator Deployment 资源中设置 LOG_LEVEL 环境变量,为 Service Registry Operator 设置日志级别。有效的 LOG_LEVEL 值是 debuginfowarnerror
CORS 允许的源

服务器可以使用 Cross-Origin Resource Sharing (CORS)机制来控制响应是否与请求的来源共享。Service Registry Operator 现在根据 ApicurioRegistry CRD 文件中的 spec.deployment.host 字段的值设置 CORS_ALLOWED_ORIGINS 环境变量。此环境变量控制 Service Registry 发送的 Access-Control-Allow-Origin 标头。

如果使用自定义 Ingress (例如,配置 HTTPS),您可以通过将 spec.deployment.managedResources.disable Ingress 字段设置为 true 来禁用 Operator 管理的 Ingress,仍然将 spec.deployment.host 字段设置为适当的值。如果要配置完全自定义的 CORS 策略,您可以将 spec.deployment.host 字段设置为空,应用更改,然后使用 spec.deployment.env 字段手动设置 CORS_ALLOWED_ORIGINS 环境变量。

使用 pod 模板配置 Service Registry 部署

ApicurioRegistry CRD 文件现在包含 spec.deployment.podTemplateSpecPreview 字段作为技术预览功能。spec.deployment.podTemplateSpecPreview 字段的结构与 OpenShift Deployment 资源( PodTemplateSpec struct)中的 spec.template 字段相同。通过一些限制,Service Registry Operator 将来自此字段的数据转发到 Service Registry Deployment 资源中的对应字段。此功能提供更大的灵活性,而无需 Service Registry Operator 原生支持每个用例。

重要

技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。

有关红帽技术预览功能支持范围的更多信息,请参阅技术预览功能支持范围

Service Registry 用户文档和示例

文档库已使用版本 2.4 中的新功能更新:

开源演示应用程序也已更新:

6.4. Service Registry 弃用的功能

Service Registry 核心已弃用的功能
  • Confluent Schema Registry API 版本 6 (compatibility API): Service Registry 目前支持独立端点上的 Confluent Schema Registry API 的两个版本:版本 6 和版本 7。使用版本 6 已被弃用;v6 API 端点将在以后的版本中删除。确保您将对 v6 端点的所有引用替换为对 v7 API 端点的引用。
  • Service Registry Core API 版本 1: Service Registry 支持 Service Registry Core API (版本 1)现已弃用,旧的 API 将在下一个主发行版本中删除。
  • 动态日志级别配置/admin/loggers/admin/loggers/{logger} API 端点现在在 Service Registry Core API (v2)中被弃用。这些端点将在以后的发行版本中被删除。
  • Registry V1 export 工具 :命令行导出工具的 Service Registry 支持现已弃用。导出工具用于将 Service Registry 1.x 中的数据导出为可导入到 2.x 的格式,将不再发布或维护。所有客户都应该已从 1.x 升级到 2.x。
Service Registry Operator 已弃用的功能
  • 通过编辑 Deployment 资源来设置环境变量 :在以前的版本中,您可以通过直接编辑其 Deployment 资源(由 Service Registry Operator 支持)来为 Service Registry 设置环境变量。现在,您可以使用 ApicurioRegistry CRD 文件中的 spec.configuration.env 字段来管理环境变量,前面的流程已弃用,并将删除对它的 Operator 支持。确保使用 spec.configuration.env 字段来设置 Operator 未设置的所有环境变量。
  • 为未启用的功能保留环境变量 : Service Registry Operator 设置环境变量以启用和配置各种功能,如使用 KafkaSQL 存储时 Salted Challenge Response Authentication Mechanism (SCRAM)安全性。当禁用此类功能时,Operator 当前会保留关联的环境变量,这可能会导致问题。此类环境变量的保留已弃用,Operator 对它的支持将被删除。确保您的部署不依赖于这些环境变量的保留。
  • 环境变量优先级 : Service Registry Operator 可能会尝试设置已在 spec.configuration.env 字段中明确指定的环境变量。如果环境变量具有冲突的值,则 Service Registry Operator 设置的值会默认具有优先权。此行为将在以后改变,以便用户覆盖 Operator 设置的大部分环境变量。确保您的部署不依赖于原始优先级行为。

6.5. 升级和迁移 Service Registry 部署

您可以将 Service Registry 服务器从 Service Registry 2.x 升级到 OpenShift 上的 Service Registry 2.4。没有从 Service Registry 1.x 到 Service Registry 2.x 的自动升级,需要迁移过程。

6.5.1. 更新 2.x 客户端依赖项

这不是为这个版本更新客户端依赖项所必需的;现有 2.x 客户端仍可用于 Service Registry 2.4。

但是,在下一个 Service Registry 版本前,您必须更新所有客户端应用程序依赖项以使用最新的 Service Registry 客户端版本。客户端应用程序依赖项包括 Kafka serializers/deserializers (SerDes)、Maven 插件和 Java REST 客户端的依赖项。例如,要更新 Java REST 客户端的 Maven 依赖项,请在 pom.xml 文件中指定版本,如下所示:

<dependency>
    <groupId>io.apicurio</groupId>
    <artifactId>apicurio-registry-client</artifactId>
    <version>2.4.3.Final-redhat-00006</version>
</dependency>

如需了解更多详细信息,请参阅 默认启用旧 REST API 日期格式

6.5.2. 从 OpenShift 上的 Service Registry 2.x 升级

您可以从 OpenShift 4.9 上的 Service Registry 2.x 升级到 OpenShift 4.10 或更高版本的 Service Registry 2.4。您必须升级 Service Registry 和 OpenShift 版本,并一次升级 OpenShift 的一个次版本。

先决条件

  • 您已在 OpenShift 4.9 上安装 Service Registry 2.x。

流程

  1. 在 OpenShift Container Platform Web 控制台中,点 Administration,然后点 Cluster Settings
  2. Channel 字段旁边的铅笔图标,然后选择下一个次 candidate 版本(例如,从 stable-4.9 改为 candidate-4.10)。
  3. Save 然后点 Update,等待升级完成。
  4. 如果 OpenShift 版本小于 4.11,请重复步骤 2 和 3,然后选择 candidate-4.11 或更高版本。
  5. Operators > Installed Operators > Red Hat Integration - Service Registry
  6. 确保 更新频道 已设置为 2.x
  7. 如果 Update approval 设为 Automatic,则升级应在设置 2.x 频道后立即批准并安装。
  8. 如果 Update approval 设置为 Manual,点 Install
  9. 等待 Operator 部署好并部署了 Service Registry pod。
  10. 验证您的 Service Registry 系统是否正在运行。

其他资源

  • 有关如何在 OpenShift Container Platform Web 控制台中设置 Operator 更新频道的更多详细信息,请参阅 更改 Operator 的更新频道

6.5.3. 从 OpenShift 上的 Service Registry 1.1 迁移

有关从 Service Registry 1.1 迁移到 Service Registry 2.x 的详情,请参阅 迁移 Service Registry 部署

6.6. Service Registry 解决的问题

Expand
表 6.1. Service Registry 解决了 2.4.3 版本中的问题
问题描述

Registry-3307

在 web 控制台中启用 Anonymous read accessArtifact owner-only 授权 会失败,并显示错误。

Registry-3260

在将 KafkaSQL 存储配置为使用 SSL 时,密钥密码不是可选的。

Registry-3184

JSON 模式兼容性检查无法进行 多次 比较。

Registry-3143

部署 Service Registry 时 DownloadReaper 错误。

Registry-3096

SearchedGroup.createdBy 属性应具有类型 String not Object

Registry-3088

enum 工件引用和记录 ID 策略中的序列化错误。

Registry-3086

无法上传引用具有 $ref 的其它模式的 JSON 架构。

Registry-3080

当提供了空 schema 时,兼容性检查不会抛出异常。

Registry-3014

当 schema 默认值为 {} 时,上传会失败,并显示 422 错误。

Registry-2991

Kafka 消费者线程在内部数据库就绪前启动。

Registry-2955

重定向过滤器配置不正确。

Registry-2952

兼容性规则不会按版本号排序。

Registry-2938

除非启用了 SASL,否则 SSL 配置无法正常工作。

Registry-2902

'registry.ccompat.use-canonical-hash' 设置将模式更改为 save 时可以匿名化表单。

Registry-2880

当向 auth 服务器传递错误的凭证时,不会抛出异常。

Registry-2877

上传新版本的 Protobuf 模式会失败,并显示 NullPointerException

Registry-2826

使用 REST API 创建工件时,名称和描述会错误填充。

Registry-2790

如果禁用了最新版本,则无法获得最新的 schema 版本。

Registry-2552

对于复杂的数组对象,JSON 模式验证失败。

Service Registry Operator 解决的问题
Expand
问题描述

IPT-916

Operator 创建的服务中没有提供端口名称。

IPT-883

部署销毁后缺少环境变量。

IPT-852

用于管理环境变量的方法不正确。

Operator-119

日志级别没有正确设置。

6.7. Service Registry 解决了 CVE

Expand
表 6.2. Service Registry 在 2.4.3 版本中解决了 CVE 报告的安全漏洞问题
问题描述

IPT-943

CVE-2023-2976 guava: Insecure 临时目录创建 [rhint-serv-2].

IPT-890

CVE-2021-46877 jackson-databind:如果使用 JDK 序列化序列化 JsonNode [rhint-serv-2],则 Possible DoS。

IPT-880

CVE-2022-3510 protobuf-java: Message-Type Extensions 解析问题会导致 DoS [rhint-serv-2]。

IPT-879

CVE-2022-3509 protobuf-java: Textformat 解析问题会导致 DoS [rhint- serv-2]。

IPT-876

CVE-2023-28867 graphql-java: crafted GraphQL 查询会导致堆栈消耗 [rhint-serv-2]。

IPT-866

CVE-2022-25881 http-cache-semantics: Regular Expression Denial of Service (ReDoS)安全漏洞 [rhint-serv-2].

IPT-856

CVE-2022-3782 keycloak:通过双 URL 编码 [rhint-serv-2] 的路径遍历。

IPT-850

CVE-2022-45787 apache-james-mime4j: Temporary File Information Disclosure in MIME4J TempFileStorageProvider [rhint-serv-2].

IPT-845

CVE-2022-4742 json-pointer: json-pointer [rhint-serv-2] 中的原型 pollution。

IPT-825

CVE-2022-40152 woodstox-core: woodstox to serialise XML 数据易受 Denial Service (DoS)攻击 [rhint-serv-2] 攻击。

6.8. Service Registry 已知问题

以下已知问题在 Service Registry 2.4.x 中应用:

Service Registry 内核已知问题

registry-3413 - 默认启用旧 REST API 日期格式

为获得最大兼容性,并从旧版本的 Service Registry 更轻松地升级,REST API 中使用的日期格式与 OpenAPI 标准不兼容(因为旧版本中存在错误)。

在下一个 Service Registry 版本前,您必须升级所有客户端应用程序以使用最新的客户端版本。下一个版本将修复日期格式 bug,这会导致旧的客户端不再与 REST API 兼容。

要将 REST API 更新至兼容 OpenAPI,您可以修复此 Service Registry 中的日期格式错误,如下所示:

  1. 将所有客户端应用程序更新至 2.4.3.Final-redhat-00006,如 更新 2.x 客户端依赖项 中所述。
  2. 将以下环境变量设置为显示的值:

    REGISTRY_APIS_V2_DATE_FORMAT=yyyy-MM-dd'T'HH:mm:ss'Z'

IPT-814 - Service Registry logout 功能与 RH-SSO 7.6 不兼容

在 RH-SSO 7.6 中,与 logout 端点一起使用的 redirect_uri 参数已弃用。如需了解更多详细信息,请参阅 RH-SSO 7.6 升级指南。因此,当 Service Registry 使用 RH-SSO Operator 保护时,点 Logout 按钮会显示 Invalid parameter: redirect_uri 错误。

有关临时解决方案,请参阅 https://access.redhat.com/solutions/6980926

IPT-701 - CVE-2022-23221 H2 允许通过 JNDI 从远程服务器加载自定义类

当 Service Registry 数据存储在 AMQ Streams 中时,H2 数据库控制台允许远程攻击者使用 JDBC URL 执行任意代码。在默认情况下,Service Registry 不会受到攻击,需要进行恶意配置更改。

Service Registry Operator 已知问题

operator-42 - 自动生成 OpenShift 路由可能会使用错误的基本主机值

如果指定了多个 routerCanonicalHostname 值,则自动生成 Service Registry OpenShift 路由可能会使用错误的基本主机值。

附录 A. 使用您的订阅

集成通过软件订阅提供。要管理您的订阅,请访问红帽客户门户中的帐户。

访问您的帐户

  1. 转至 access.redhat.com
  2. 如果您还没有帐户,请创建一个帐户。
  3. 登录到您的帐户。

激活订阅

  1. 转至 access.redhat.com
  2. 导航到 My Subscriptions
  3. 导航到 激活订阅 并输入您的 16 位激活号。

下载 zip 和 tar 文件

要访问 zip 或 tar 文件,请使用客户门户网站查找下载的相关文件。如果您使用 RPM 软件包,则不需要这一步。

  1. 打开浏览器并登录红帽客户门户网站 产品下载页面,网址为 access.redhat.com/downloads
  2. 向下滚动到 INTEGRATION 和 AUTOMATION
  3. Red Hat Integration 以显示 Red Hat Integration 下载页面。
  4. 单击组件的 Download 链接。

更新于 2023-09-22

法律通告

Copyright © 2023 Red Hat, Inc.
The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, the Red Hat logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2026 Red Hat
返回顶部