Red Hat build of Apache Camel for Spring Boot 发行注记
红帽构建的 Apache Camel 新功能
摘要
1.1. Red Hat build of Apache Camel for Spring Boot 的功能 复制链接链接已复制到粘贴板!
Red Hat build of Apache Camel for Spring Boot 引入了对 Spring Boot 的 Camel 支持,它为许多 Camel 组件提供自动配置和开始者。Camel 上下文的推荐自动配置会自动探测 Spring 上下文中可用的 Camel 路由,并将密钥 Camel 实用程序(如生成者模板、消费者模板和类型转换器)注册为 Bean。
1.2. 红帽构建的 Apache Camel for Spring Boot 支持的平台、配置、数据库和扩展 复制链接链接已复制到粘贴板!
- 有关红帽构建的 Apache Camel for Spring Boot 中支持的平台、配置和数据库的详情,请查看客户门户网站中的支持的配置页面(需要登录)。https://access.redhat.com/articles/6970899
- 有关红帽构建的 Apache Camel for Spring Boot 扩展列表,请参阅 Red Hat build of Apache Camel for Spring Boot Reference (需要登录)。
1.3. javax 到 jakarta Package Namespace Change 复制链接链接已复制到粘贴板!
Java EE 移至 Eclipse Foundation 和 Jakarta EE 的建立,因为用于所有 EE API 的 Jakarta EE 9 软件包已改为 jakarta …
文档中的代码片段已更新为使用 jakarta 输入命名空间,但您需要小心操作并查看您自己的应用程序。
这个更改不会影响作为 Java SE 一部分的 javax 软件包。
将应用迁移到 EE 10 时,您需要:
-
将任何导入语句或其他源代码使用来自
javax软件包中的 EE API 类更新到jakarta。 -
更改任何以
javax.开头的 EE 指定的系统属性或其他配置属性,使其以jakarta开头。 -
使用
META-INF/services/jakarta.[rest_of_name]名称格式来识别使用实施 EE 接口或通过java.util.ServiceLoader机制引导的应用程序中的实施类。
1.3.1. 迁移工具 复制链接链接已复制到粘贴板!
- 源代码迁移: 如何使用 Red Hat Migration Toolkit for Auto-Migration of Application to the Jakarta EE 10 命名空间
- bytecode 转换:对于源代码迁移不是选项的情况,开源 Eclipse Transformer
其他资源
1.4. Red Hat build of Apache Camel for Spring Boot 的重要备注 复制链接链接已复制到粘贴板!
1.4.1. 支持 IBM Power 和 IBM Z 复制链接链接已复制到粘贴板!
IBM Power 和 IBM Z 现在支持 Red Hat build of Camel Spring Boot。
1.4.2. 对 snowdrop groupId 的更改 复制链接链接已复制到粘贴板!
snowdrop groupId 从 me.snowdrop 改为 dev.snowdrop。您必须相应地更新 pom.xml 文件。
要使用 自动 Camel 上下文重新加载 Secret Refresh 功能,必须通过 UI 或使用 opereation PutSecretValue 的 API 调用来完成 secret 更新。camel context reload 不会被通过 Camel 执行 updateSecret 触发。
以下小节列出了在 Red Hat build of Apache Camel for Spring Boot 中解决的问题。
以下小节列出了在 Red Hat build of Apache Camel for Spring Boot 4.10.7 中解决的问题。
| 问题 | 描述 |
|---|---|
| CVE-2025-58056 netty-codec-http: Netty 容易受到请求 smuggling 的影响,因为块扩展不正确 | |
| CVE-2025-58056 netty-codec-http2:由于块扩展不正确解析,Netty 容易请求 smuggling | |
| CVE-2025-41248 spring-security-core: Spring 安全授权绕过 | |
| CVE-2025-41249 spring-core: Spring Framework Annotation 检测漏洞 | |
| CVE-2025-41249 spring-core-test: Spring Framework Annotation 检测漏洞 | |
| CVE-2025-41249 org.springframework/spring-core: Spring Framework Annotation 检测漏洞 | |
| CVE-2025-4949 org.eclipse.jgit: XXE 漏洞在 Eclipse JGit 中 | |
| CVE-2025-59952 minio: minio-java Client XML Tag 对 Value Substitution Vulnerable | |
| CVE-2025-59952 io.minio/minio: minio-java Client XML Tag Vulnerable to Value Substitution |
除了以上问题外,红帽为 Spring Boot 版本 4.10.7 构建 Apache Camel 还包括几个上游修复。有关这些修复的更多信息,请参阅 解决问题。
以下小节列出了在 Red Hat build of Apache Camel for Spring Boot 4.10.6 中解决的问题。
| 问题 | 描述 |
|---|---|
| camel-resilience4j-starter 记录/忽略异常应处理嵌套异常 | |
| 支持组件 camel-rest-openapi | |
| http component as producer fails if bridgeEndpoint=true | |
| camel-http-starter 使用 httpclient5 的社区版本 | |
| CXF 制作者将 http 路径附加到请求的 http 端点 | |
| rest-openapi 上下文不正确 | |
| CVE-2025-55163 netty-codec-http2: Netty MadeReset HTTP/2 DDoS Vulnerability | |
| CVE-2025-5115 jetty-http2-client: HTTP/2 (包括 HTTPS 的 DNS)包含设计缺陷,并容易受到 "MadeYouReset" DoS 攻击攻击 HTTP/2 控制帧 | |
| CVE-2025-5115 jetty-http2-client-transport: HTTP/2 (包括 HTTPS 的 DNS)包含一个设计漏洞,并容易受到 "MadeYouReset" DoS 攻击通过 HTTP/2 控制帧的攻击 | |
| CVE-2025-5115 jetty-http2-common: HTTP/2 (包括 HTTPS 的 DNS)包含设计缺陷,并容易受到 "MadeYouReset" DoS 攻击攻击,通过 HTTP/2 控制帧 | |
| CVE-2025-5115 jetty-http2-hpack: HTTP/2 (包括 HTTPS 的 DNS)包含一个设计漏洞,它容易受到 "MadeYouReset" DoS 攻击攻击(通过 HTTP/2 控制帧) | |
| 在 SMB 服务器有网络问题/重置连接后,Camel-smb 组件无法正确恢复 |
以下小节列出了在 Red Hat build of Apache Camel for Spring Boot version 4.10 Patch 1 中解决的问题。
| 问题 | 描述 |
|---|---|
| jbang dependency 命令不显示/处理版本 | |
| CVE-2024-13009 jetty-server: Jetty: Gzip Request Buffer Buffer Corruption | |
| CVE-2025-41232 spring-security-core: Spring Security authorization bypass for method security annotations | |
| CVE-2025-48734 commons-beanutils: Apache Commons BeanUtils: PropertyUtilsBean 不会默认阻止 enum 的 claimClass 属性 | |
| CVE-2025-49146 postgresql: pgjdbc insecure authentication in channel binding |
以下小节列出了在 Red Hat build of Apache Camel for Spring Boot 版本 4.10 中解决的问题。
| 问题 | 描述 |
|---|---|
| 添加对 camel-graphql 的支持 | |
| 支持普通 CXF SOAP 场景 | |
| 添加对 Kamelets 和 Pipes 的支持 | |
| 奇数 <toD>,带有标头替换 | |
| 在 XML 中配置时,jaxws:client 的地址占位符不会被解析 | |
| redshift kamelet: Failed to configure a DataSource | |
| camel-platform-http-starter 不实现 restConfiguration 中的所有功能 | |
| camel-jaxb - JaxbDataFormat ignoreJAXBElement 是默认的 true | |
| 使用 Spring Security 为 Camel 的 Route Security 创建实施示例 | |
| [doc] Lack of 指令,将 SAP JCo 和 SAP IDoc 库安装到 OCP 上 Java 运行时的"lib/"目录中 | |
| 支持组件 camel-observability-services | |
| Additional Information Needed in CamelLivenessStateHealthIndicator Logs | |
| 针对 camel-kubernetes 的 javax 依赖项 | |
| 支持组件 camel-ssh | |
| camel-infinispan-starter 无法用于最新的产品化 JDG | |
| 支持组件 camel-smooks | |
| 依赖项 org.apache.camel/camel-console 增加了构建时间 | |
| 红帽构建的 Apache Camel BOM 包括 UPSTREAM Artemis BOM | |
| Eip: endChoice ()无法获得嵌套选择中的父项 | |
| strimzi quickstart / get rid of kubernetes profile | |
| [CAMEL-22001]camel-core - Kamelet 和 EIPs 应该传播交换变量 | |
| kamelets: camel export due to Bean not found | |
| [AWS-Kinesis] 使用 KCL Consumer 模式时,kinesisClient bean 上的错误 | |
| jbang 导出会导致 java.lang.ClassNotFoundException: org.apache.camel.kamelets.catalog.KameletsCatalog | |
| kamelet ExtractField 引用错误的 Camel ExtractField 类 | |
| MongoDB 版本不正确 | |
| CVE-2025-1948 jetty-http2-common: Jetty HTTP/2 Header List Size Vulnerability | |
| 向后移植 CAMEL-21828: 在小写模式下过滤 DefaultHeaderFilterStrategy 时修复 DefaultHeaderFilterStrategy | |
| 向后移植 CAMEL-21876 - Undertow Header Filter 策略:考虑过滤中的 | |
| Camel CLI export 命令不对待产品版本 |
1.6. 红帽构建的 Apache Camel for Spring Boot 的 API 更改 复制链接链接已复制到粘贴板!
以下小节列出了 Red Hat build of Apache Camel for Spring Boot 的已知问题。
- CSB-6748 方法
AttachmentMessage.getAttachments ()返回值已更改 -
当您使用
AttachmentMessage.getAttachments ()方法时,它会在没有附件时返回一个空列表而不是 null 值。
1.7. Red Hat build of Apache Camel for Spring Boot 的已知问题 复制链接链接已复制到粘贴板!
以下小节列出了 Red Hat build of Apache Camel for Spring Boot 的已知问题。
- CSB-6748 方法
AttachmentMessage.getAttachments ()返回值已更改 -
当您使用
AttachmentMessage.getAttachments ()方法时,它会在附加时返回一个空列表而不是 null 值。
- CSB-6437 CXF opentelemetry - 使用 RHEL9 上来自不同 http 请求的同一 trace id
-
这个问题只适用于在 RHEL 9 平台上带有自定义追踪配置的 CXF 和 OpenTelemetry。当您调用多个请求时,只有 CXF 和 opentelemetry 定义了自定义 opentelemetry tracer,则 trace ID 似乎会被在 Camel 路由中重复使用。结果是,每个 http 请求会在现有 trace 中添加新 span,而不是为每个 http 请求创建一个新的 trace ID。解决办法是将
ContextPropagators明确定义为W3CTraceContextPropagator,如下例所示:
@Bean
ContextPropagators contextPropagators() {
// return ContextPropagators.create(TextMapPropagator.composite(W3CBaggagePropagator.getInstance()));
return ContextPropagators.create(W3CTraceContextPropagator.getInstance());
}
@Bean
ContextPropagators contextPropagators() {
// return ContextPropagators.create(TextMapPropagator.composite(W3CBaggagePropagator.getInstance()));
return ContextPropagators.create(W3CTraceContextPropagator.getInstance());
}
- 如果 spring.boot.actuator.autoconfigure 不在依赖项中,则 CSB-4318 Fail 使用 Openshift Maven 插件在 OCP 上部署
Jkube maven 插件使用以下条件来检查应用是否公开健康端点(使用
SpringBootHealthCheckEnricher)。这两个类都位于 classpath 中:-
org.springframework.boot.actuate.health.HealthIndicator -
org.springframework.web.context.support.GenericWebApplicationContext
-
但是,在没有配置操作器的情况下不会公开 /actuator/health wil。这会造成 JKube (它们都使用上述端点)配置的就绪度/存活探针与应用程序公开的内容之间。
此错误配置会在 OpenShift Container Platform 上造成部署配置失败,因为生成的 pod 不会处于 Ready 状态,因为没有配置探测调用。因此,为了使应用程序在 OpenShift Container Platform 上工作,它使用 JKube (openshift-maven-plugin)进行部署,需要在依赖项中包含 Web 和 actuator 自动配置。
以下示例演示了如何配置 web 和 actuator 自动配置。
Example
更新 archetype,如下所示。以下 archetype 构建的应用程序将使用 JKube 正确部署。
此问题会影响缺少上述依赖项之一的自定义应用程序。