Red Hat Fuse 7.11 发行注记
使开源包含更多
红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。我们从这四个术语开始:master、slave、黑名单和白名单。由于此项工作十分艰巨,这些更改将在即将推出的几个发行版本中逐步实施。详情请查看我们的 CTO Chris Wright 信息。
第 1 章 Fuse 7.11 产品概述
1.1. Fuse 发行版
Fuse 7.11 以三种不同发行版的形式提供,如下所示:
- Fuse 独立
Fuse 的典型发行版支持在多个操作系统中。以下容器类型支持这个发行版本:
- Apache Karaf
- JBoss Enterprise Application Platform(EAP)
- Spring Boot
- OpenShift 中的 Fuse
用于在 OpenShift 中运行集成应用程序的 Fuse 发行版(受 Red Hat Enterprise Linux 操作系统支持)。在这种情况下,支持的容器类型以 docker 格式的容器镜像的形式提供:
- Java 镜像(用于 Spring Boot)
- Apache Karaf 镜像
- JBoss EAP 镜像
- Fuse Online
Fuse 分发给非专用集成商,并通过基于浏览器的 UI 访问简化工作流。此发行版可用于以下部署:
- 在 OpenShift Dedicated(OSD)集群上。
- 在内部 OpenShift 集群上安装
1.2. 新功能
Fuse 7.11 包括几个主要组件升级和大量新功能。详情请查看每个 Fuse 发行版本 的新功能 部分:
1.3. Fuse 7.11.1 备注
对于 OpenShift 7.11.1 上的 Fuse,镜像流的 BASEURL 是 https://github.com/jboss-fuse/application-templates/blob/application-templates-2.1.0.fuse-sb2-7_11_1-00016-redhat-00002/。
对于 Fuse Online,若要从 Fuse 7.10 升级到 7.11.1,请按照 第 2.4 节 “从 Fuse Online 7.10.x 升级到 7.11.x 需要手动升级步骤” 中的说明操作。
对于 Fuse 独立,将 7.11.1 fuse.version 属性设置为 第 4.4.1 节 “用于 Fuse 7.11.1 的 BOM 文件” 中列出的相应 BOM 版本。
1.4. 重要备注
- CVE-2020-8908 guava
- 临时目录创建漏洞存在于 30.0 之前的 Guava 版本中。我们建议将 Guava 更新至版本 30.0 或更高版本,或升级到 Java 7 或更高版本,或者在创建目录后显式更改权限(如果两者不可能)。
- Red Hat CodeReady Studio 为 sunset 调度
- Red Hat CodeReady Studio 为 sunset 调度。JBoss 工具(社区)是成功工具包。
1.5. 支持的配置
对于在 Apache Karaf 中运行 Fuse,我们建议 OpenJDK 8u282 或 OpenJDK 8u302。不要使用 OpenJDK 8u292,这个问题在影响凭证存储时存在一个问题(请参阅 ENTESB-16417)。OracleJDK 1.8.0_291 也会受到此问题的影响。
有关版本 7.11 中支持的配置、标准和组件的详情,请查看以下客户门户网站文章:
第 2 章 Fuse Online
Fuse Online 提供了一个 Web 浏览器界面,它允许业务专家在无需编写代码的情况下集成两个或多个应用程序或服务。它还提供了在复杂用例中需要添加代码的功能。
Fuse Online 在 OpenShift 上作为使用 Apache Camel 的 Spring Boot 应用程序运行集成。
2.1. 关于 Fuse 在线分发
Fuse Online 是红帽基于 Web 的集成平台。Syndesis 是 Fuse Online 的开源项目。Fuse Online 在这些 OpenShift 环境中运行:
| 主机环境 | 安装 |
| OpenShift Dedicated | 红帽在红帽基础架构上安装并置备 Fuse Online。 |
| OpenShift Container Platform | 客户安装和管理. |
2.2. Fuse Online 7.11 中的新功能
这些功能在 Fuse Online 7.11 中是新功能:
支持连接到 Red Hat Managed Kafka
要支持连接到 Red Hat Managed Kafka,Kafka Message Broker 连接器包括以下字段:
- 安全协议
- SASL 机制
- 用户名
- 密码
- SASL 登录回调处理程序类
OAuth 令牌端点 URI
如需更多信息,请参阅将 Fuse Online 连接到应用程序和服务中的第 15 章"连接到 Kafka "。
集成标签
保存集成时,您可以应用一个或多个标签。标签(label)是一个键值对标签,您可以应用到集成(或其他 OpenShift 资源)以便稍后过滤并在 OpenShift 中选择。例如,OpenShift admin 用户可以按照标签过滤正在运行的 Pod 或部署的列表。
集成环境变量
另外,当您保存集成时,您可以设置一个或多个 Fuse Online 应用到集成 Pod 的环境变量。您可以使用这些环境变量来设置 Spring Boot 配置选项,例如设置
SERVER_MAX_HTTP_HEADER_SIZE。手动设置的现有环境变量将被保留。请注意,当您保存集成时,在 Fuse Online 中设置这些环境变量不会影响手动设置的其他环境设置,例如通过 OpenShift Web 控制台界面。
Maven mirror 设置
您可以指定希望 Fuse Online 在构建集成时用于访问 Maven 工件的 Maven 存储库。在 Syndesis 自定义资源中,将 Maven 存储库指定为 component:
server:features:maven:mirror设置的值。
2.3. Fuse Online 7.11 中的更改
Fuse Online 7.11 更改 Fuse Online 7.10 功能,如下所示:
要安装 AMQ Broker,请使用
todo addon选项在以前的版本中,AMQ Broker 被默认安装在 Fuse Online 中。从 Fuse Online 7.11 开始,如果要安装 AMQ Broker,请将 Fuse Online
todo addon选项设置为true。这个选项还启用示例Todoapp、示例 PostgreSQL 数据库和连接器来测试集成。有关设置todo addon选项的更多信息,请参阅在 OpenShift Container Platform 上安装和操作 Fuse Online 中的将示例数据添加到 OCP 上运行的 Fuse 环境中。数据映射程序支持 CSV 数据
对于任何可以定义数据所形成的 Fuse Online 连接器,您现在可以选择指定 CSV 实例(除了指定 JSON 模式、JSON 实例或 XML 实例的选项外)。例如,在 Webhook 连接中,您可以指定 CSV 文件作为操作的数据类型。
2.4. 从 Fuse Online 7.10.x 升级到 7.11.x 需要手动升级步骤
如果您安装了 Fuse Online 7.10.x 并希望升级到 Fuse Online 7.11.x.x,您必须手动升级到 Fuse Online 7.11.x.0。
- 在 OpenShift Container Platform Web 控制台的 Administrator 视角中,进入到 Operators > Installed Operators。
- 点 Red Hat Integration Fuse Online 7.10.2 Operator。
- 点 Subscription 标签页。
验证 Update approval 是否已设置为 Manual :
- 如果 Update approval 设为 Manual,则跳至下一步。
如果 Update approval 设置为 Automatic :
- 单击 Automatic。
- 在 Change Update Approval Strategy 对话框中,选择 Manual 并点 Save。
- 在 Update channel 下,点 7.10.2。
对于 Change subscription 更新频道,请选择 7.11.x。
注:
最新的、candidate和stable频道是技术预览功能。- 在 Upgrade status 下,单击 Upgrade available。
- 点 Preview InstallPlan,然后点 Approve。
验证 Operator 是否已完成到 Fuse Online 7.11.0 的升级:
- 进入到 Operators > Installed Operators 页面,然后点 Red Hat Integration Fuse Online。Operator Details 页面将打开。
-
选择 Syndesis 选项卡。Fuse Online 实例的状态(默认名称为 app)最初显示
Installed(以指示安装了 Fuse Online 7.11.0)。然后,它将分为几个阶段(安装、启动和Installed)。当它再次到达Installed阶段时,升级到 7.11.0 已完成。
- 返回到 Operators > ; Installed Operators 页面,然后点 Red Hat Integration Fuse Online operator 的 Upgrade available。
- 点 Preview InstallPlan,然后点 Approve。
验证 Operator 是否已完成到 Fuse Online 7.11.x 的升级:
-
导航到 Networking > Routes 并点击
syndesis的位置链接来打开 Fuse Online web 控制台。 - 在 Fuse Online 控制台右上角,单击 ? 图标,然后选择 About。
-
验证 About 页面是否在版本号中包含
7_11_x。
-
导航到 Networking > Routes 并点击
2.5. 升级 Fuse 在线集成
要升级在 OCP 现场运行的 Fuse Online 环境,您必须使用操作器更新 Fuse Online,然后重新发布任何正在运行的集成,如升级 Fuse Online 所述。
在 OCP 4.9 上,当使用 operator 升级到 7.10 时,会在 Fuse Online Operator 升级过程中显示以下警告:
W1219 18:38:58.064578 1 warnings.go:70] extensions/v1beta1 Ingress 在 v1.14+ 中被弃用,在 v1.22+ 中不可用,使用 networking.k8s.io/v1 Ingress
这个警告会出现的原因是客户端( Fuse Online 用于 Kubernetes/OpenShift API 初始化代码)访问已弃用的 Ingress 版本。这个警告 不是 完全使用已弃用 API 的指示,没有升级到 Fuse Online 7.10 的问题。
2.6. Fuse Online 的重要备注
Fuse Online distribution 的 Fuse 7.11 版本的重要备注:
- 在维护支持中,Fuse 7 对 Fuse Online 的支持现已弃用。当 Fuse 7 脱离支持时,将不会对 Fuse Online 进行任何未来开发。
- OCP 3.11 上不再支持安装 Fuse Online。
- Fuse Online 不再支持 Camel K 运行时或 KNative 连接器。
- 在红帽基础架构上安装并置备 Fuse Online 时,该帐户仅限于在一个时间点上可以运行的特定数量集成。详情请查看定价计划。
- 您上传到 Fuse Online 的 OpenAPI 模式可能没有定义输入/输出类型。当 Fuse Online 从 OpenAPI 模式创建自定义 API 客户端时,没有指定输入/输出类型,则无法创建集成数据,将集成数据映射到 API 客户端可以处理或从中处理 API 客户端的字段。如果集成需要数据映射到自定义 API,那么当您上传 OpenAPI 模式时,点 Review/Edit to open API Designer,它是一个 API 编辑工具,并添加输入/输出类型规格。
- 自 Fuse 7.8 起,您用于自定义 API 客户端连接器或 API 供应商集成的 OpenAPI 文档不能有 cyclic 模式引用。例如,指定请求或响应正文的 JSON 模式无法将其作为整个部分引用,也无法通过任意数量的中间模式引用自己。
在 OCP 4.9(或更新版本)上,
application-monitoring项目不再可以正常工作。它是通过 Prometheus 和 Grafana 监控 Fuse 在线集成和基础架构组件的先决条件。要临时解决这个问题,您可以使用 内置的监控堆栈(在
openshift-monitoring命名空间中)使用openshift-user-workload-monitoring功能和grafana-operator来使用ops addon,如以下在 OCP 4.9 (或稍后的)上添加 Fuse Online 监控资源(Prometheus 和 Grafana) 所述。
2.6.1. 在 OCP 4.9(或更新版本)上添加 Fuse Online 监控资源(Prometheus 和 Grafana)
先决条件
- Fuse Online 已安装并在 OCP 4.9(或更新版本)上运行。
-
已安装
oc客户端工具,它连接到安装了 Fuse Online 的 OCP 集群。 -
具有对 OCP 集群的
admin访问权限。 您的 Fuse Online 安装配置了启用了
ops addon。如果需要,您可以使用以下命令启用它:oc patch syndesis/app --type=merge -p '{"spec": {"addons": {"ops": {"enabled": true}}}}'
流程
如果存在
openshift-monitoring配置,请跳至第 2 步。否则,创建一个
openshift-monitoring配置,将用户工作负载监控选项设置为true,然后跳至第 3 步:oc apply -f - <<EOF apiVersion: v1 kind: ConfigMap metadata: name: cluster-monitoring-config namespace: openshift-monitoring data: config.yaml: enableUserWorkload: true EOF
如果存在
openshift-monitoring配置:检查现有的
openshift-monitoring配置,以确定 用户工作负载监控 选项是否被设置为 true :oc get -n openshift-monitoring cm/cluster-monitoring-config -ojsonpath='{.data.config\.yaml}'如果结果为
enableUserWorkload: true,则 用户工作负载监控 选项被设置为 true。跳至步骤 3。如果结果显示任何其他配置,请继续下一步,通过编辑 ConfigMap 来启用用户工作负载的监控。
在编辑器中打开 ConfigMap 文件,例如:
oc -n openshift-monitoring edit cm/cluster-monitoring-config
将 enableUserWorkload 设置为 true。例如:
apiVersion: v1 kind: ConfigMap metadata: name: cluster-monitoring-config namespace: openshift-monitoring data: config.yaml: enableUserWorkload: true
- 保存 ConfigMap 文件。
使用以下命令,观察
openshift-user-workload-monitoring命名空间中的 pod 状态:oc -n openshift-user-workload-monitoring get pods -w
等待 pod 的状态是 Running,例如:
prometheus-operator-5d989f48fd-2qbzd 2/2 Running prometheus-user-workload-0 5/5 Running prometheus-user-workload-1 5/5 Running thanos-ruler-user-workload-0 3/3 Running thanos-ruler-user-workload-1 3/3 Running
验证 Prometheus 中是否启用了 Fuse Online 警报规则:
访问内部 prometheus 实例
oc port-forward -n openshift-user-workload-monitoring pod/prometheus-user-workload-0 9090
-
打开浏览器,到
localhost:9090 -
选择 Status> Targets。您应看到
三个整合端点。 -
按 CTRL-C 终止
端口转发进程。
-
从 OperatorHub,将 Grafana Operator 4.1.0 安装到您选择的命名空间,如
grafana- Middleware命名空间。 添加集群角色和集群角色绑定,以允许
grafana-operator列出节点和命名空间:从
grafana-operator网站下载集群角色 YAML 文件:curl https://raw.githubusercontent.com/grafana-operator/grafana-operator/master/deploy/cluster_roles/cluster_role_grafana_operator.yaml > tmp_role.yaml
为
grafana-operator添加集群权限以读取其他命名空间和节点:cat <<EOF >> tmp_role.yaml - apiGroups: - "" resources: - namespaces - nodes verbs: - get - list - watch EOFoc apply -f tmp_role.yaml
oc apply -f - <<EOF apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: grafana-operator roleRef: name: grafana-operator kind: ClusterRole apiGroup: "" subjects: - kind: ServiceAccount name: grafana-operator-controller-manager namespace: grafana-middleware EOF
启用
grafana-operator,使用DASHBOARD_NAMESPACES_ALL环境变量从其他命名空间中读取 Grafana 仪表板,以限制命名空间:oc -n grafana-middleware patch subs/grafana-operator --type=merge -p '{"spec":{"config":{"env":[{"name":"DASHBOARD_NAMESPACES_ALL","value":"true"}]}}}'检查
grafanapod 是否已重新创建:oc -n grafana-middleware get pods -w
另外,还可查看
grafana-operator日志:oc -n grafana-middleware logs -f `oc -n grafana-middleware get pods -oname|grep grafana-operator-controller-manager` -c manager
添加 Grafana 自定义资源 以启动 Grafana 服务器 pod,例如:
oc apply -f - <<EOF apiVersion: grafana.integreatly.org/v1beta1 kind: Grafana metadata: name: grafana-middleware namespace: grafana-middleware spec: config: auth: disable_signout_menu: true auth.anonymous: enabled: true log: level: warn mode: console security: admin_password: secret admin_user: root dashboardLabelSelector: - matchExpressions: - key: app operator: In values: - grafana - syndesis ingress: enabled: true EOF允许
grafana-operator读取监控信息:oc -n grafana-middleware adm policy add-cluster-role-to-user cluster-monitoring-view -z grafana-serviceaccount
添加
GrafanaDatasource以查询thanos-querier:oc apply -f - <<EOF apiVersion: grafana.integreatly.org/v1beta1 kind: GrafanaDataSource metadata: name: prometheus-grafanadatasource namespace: grafana-middleware spec: datasources: - access: proxy editable: true isDefault: true jsonData: httpHeaderName1: 'Authorization' timeInterval: 5s tlsSkipVerify: true name: Prometheus secureJsonData: httpHeaderValue1: "Bearer $(oc -n grafana-middleware serviceaccounts get-token grafana-serviceaccount)" type: prometheus url: "https://$(oc get route thanos-querier -n openshift-monitoring -ojsonpath='{.spec.host}')" name: prometheus-grafanadatasource.yaml EOF查看 grafana 服务器日志:
oc logs -f `oc get pods -l app=grafana -oname`
访问 grafana URL 并查看 Fuse Online 仪表板:
echo "https://"$(oc -n grafana-middleware get route/grafana-route -ojsonpath='{.spec.host}')
2.7. 获取 Fuse Online 的技术支持
要在 Fuse Online 控制台中获得技术支持,请在左侧导航面板中点 Support。使用支持 页面下载所有集成或您选择的一个或多个集成的诊断信息。该页面还提供打开支持问题单的链接,并提供您下载的诊断信息。
2.8. Fuse Online 中的技术预览功能
此发行版本包括以下列出的技术预览功能。
红帽产品服务等级协议(SLA)不支持技术预览功能,且其功能可能并不完善,因此红帽不建议在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。如需更多信息,请参阅红帽技术预览功能支持范围。
Fuse 在线审计
Fuse Online 支持对任何用户对以下 Fuse Online 组件所做的更改进行的基本审计:
-
Connection -
Name和任何其他字段显示在 Fuse Online Web 控制台的连接器 详情页 中。 -
连接器 -
Name字段。 -
集成 -
Name字段。
-
Connection -
在数据映射器中,您可以指定一个条件表达式并将其应用到数据映射中。例如,条件表达式可以指定 source 字段的评估,以及如果 source 字段为空,如何填充 target 字段。您可以指定的有限表达式集合与 Microsoft Excel 表达式类似。
数据映射器中用户定义的属性的文档范围
在 data mapper 中,您可以指定您为源和目标映射定义的属性的范围。在 Mapping Details 面板中,单击 Properties 旁边的 Add (+)。在 Create Property 对话框中。对于新的 Scope 选项,您可以选择当前消息标题、上一步中的消息标题,或用于 Camel 特定属性的 Camel Exchange Property。
对于使用 OAuth 的 REST API 客户端,当您创建 API 客户端连接器时,您可以更改您从该连接器中创建的连接的默认 OAuth2 行为。Fuse Online vendor 扩展至 OpenAPI 规格,支持以下内容:
- 提供客户端凭据作为参数.
- 根据 HTTP 响应状态代码获取新的访问令牌。
第 3 章 OpenShift 中的 Fuse
借助 OpenShift 的 Fuse,您可以在 OpenShift Container Platform 上部署 Fuse 应用程序。
3.1. 支持的 OpenShift 版本
有关 OpenShift 中与 Fuse 支持的 OpenShift Container Platform 版本(或版本)的详情,请参阅 支持的配置 页面。
3.2. 支持的镜像
OpenShift 上的 Fuse 提供以下 Docker 格式镜像:
| Image | 平台 | 支持的构架 |
|---|---|---|
|
| Spring Boot | AMD64 和 Intel 64(x86_64) |
|
| Spring Boot | AMD64 和 Intel 64(x86_64) |
|
| Spring Boot |
IBM Z 和 LinuxONE(s390x) |
|
| Apache Karaf | AMD64 和 Intel 64(x86_64) |
|
| Apache Karaf | AMD64 和 Intel 64(x86_64) |
|
| Red Hat JBoss Enterprise Application Platform | AMD64 和 Intel 64(x86_64) |
|
| Red Hat JBoss Enterprise Application Platform | AMD64 和 Intel 64(x86_64) |
|
| Fuse 控制台 |
AMD64 和 Intel 64(x86_64) |
|
| Fuse 控制台操作器 |
AMD64 和 Intel 64(x86_64) |
|
| Apicurito REST 应用程序生成器 | AMD64 和 Intel 64(x86_64) |
|
| Apicurito REST API 编辑器 | AMD64 和 Intel 64(x86_64) |
|
| API Designer Operator | AMD64 和 Intel 64(x86_64) |
3.3. OpenShift 中 Fuse 7.11 中的新功能
OpenShift 上的 Fuse 在版本 7.11 中提供以下新功能:
Fuse 控制台性能调优(仅限 OpenShift 4.x)
您可以通过设置任何
clientBodyBufferSize、proxyBuffers和subrequestOutputBufferSize环境变量来调整 Fuse 控制台的性能。注: OpenShift 3.11 不支持此功能。
对 JDK 11 的支持
Fuse 7.11 支持使用 JDK 11 在 OpenShift 快速入门中构建 Fuse。
使用
openshift-maven-plugin运行快速入门在使用 Maven archtypes 的 OpenShift 快速入门中构建并运行 Fuse 时,Fuse 7.11 使用新的
openshift-maven-plugin。支持 IBM Power Systems、IBM Z 和 LinuxONE
Fuse 7.11 添加了对 IBM Power Systems(ppc64le)、IBM Z 和 LinuxONE(s390x)的支持。
注意在 Fuse 7.11 中,不支持在 IBM Power Systems、IBM Z 和 LinuxONE 上安装 OpenShift 镜像流和模板。IBM Power Systems、IBM Z 和 LinuxONE 支持 OpenShift Operator 上的 Fuse 安装的组件。
3.4. 重要备注
在 OpenShift 分发中 Fuse 7.11 版本的重要备注:
- 在 OpenShift Container Platform(OCP) 4.9 或更高版本上支持 Fuse 7.11
- Fuse 7.11 包含更新,它可用于 OpenShift Container Platform(OCP) 4.9 或更高版本。如果您计划升级到 OCP 4.10,则必须将 Fuse 升级到 7.11,然后才能将 OCP 升级到 4.10。早期版本的 Fuse(prior 到 7.10)不支持 OCP 4.9 或更高版本。
- 已删除 data Virtualization
- 从 Fuse 7.7 开始,Data Virtualization 已被弃用,并已从 Fuse 7.8 中删除。
- Spring Boot 1 已被删除
- 从 Fuse 7.7 开始,Spring Boot 1 已被弃用,并已从 Fuse 7.8 中删除。我们建议将 Spring Boot 应用程序迁移到 Spring Boot 2,按照 Spring Boot 2.0 迁移指南 中的指导。
- Fabric8 Maven 插件被删除
- Fabric8 Maven 插件从 Fuse 7.10 完全删除,并替换为自 Fuse 7.10 起的 OpenShift Maven 插件。使用 OpenShift Maven 插件构建和部署应用程序。
- 使用 JDK11 运行快速入门
- 如果要在运行时使用基于 JDK11 的镜像,在编译期间使用正确的 JDK11 配置集。当使用 JDK11 构建和部署快速入门时,请确保已在构建机器上安装了 JDK11,然后使用正确的 JDK11 配置集构建您的快速入门。
- spring-boot 工件 Id 中的更改
-
在 Fuse 7.11 中,Spring Boot 升级到 2.5.13。在这个新版本中,
spring-cloud-starter-kubernetes-config工件 id 被改为spring-cloud-starter-kubernetes-client-config。
Quickstart Spring-Boot RHOSAK 因为 spring-boot 升级失败
eap-camel-jpaQuickstart 已被删除-
由于依赖项存在问题,
eap-camel-jpaQuickstart 已从 Fuse 7.8 中删除。 - 自 Fuse 7.8 起,不能从外部访问 Jolokia
- 从 Fuse 7.8 开始,Jolokia 默认协议从 HTTP 切换到 HTTPS。
- 支持 FIPS 的 Jolokia 代理不可用
- 在 OCP FIPS-enabled Jolokia 代理中,因为不支持的安全编码而不可用。
第 4 章 Fuse 单机
4.1. 支持的容器
在以下运行时容器上支持 Fuse 独立 7.11:
- Spring Boot 2(standalone)
- Apache Karaf
- Red Hat JBoss Enterprise Application Platform (JBoss EAP)
4.2. Fuse 7.11 中的新功能
Fuse standalone 在版本 7.11 中的主要新功能是:
- Apache Karaf 支持 Java 11
- 现在,Apache Karaf 运行时支持 Java 11。
4.3. 技术预览功能
Fuse 独立的以下功能仅 是技术预览,在 Fuse 7.11 中不被支持:
- Saga EIP
- Saga Enterprise Integration Pattern(EIP)是一个技术预览功能,只有 In-Memory Saga 服务(它不适用于生产环境)。不支持 LRA Saga 服务。如需了解更多详细信息,请参阅"Apache Camel 开发指南"的第 Saga EIP。
4.3.1. Fuse 工具支持 Apache Camel
Fuse 工具为 Camel 应用程序开发提供跨平台、跨平台的跨平台方法,以及适用于 Visual Studio Code、Eclipse IDE 和 Eclipse Che 的 Apache Camel 语言支持扩展或插件。
Visual Studio Code 特性
VS Code Apache Camel 扩展是社区功能。红帽不支持它们。
Apache Camel 扩展的语言支持为 Camel URI 提供了功能,如下所示:
对于 XML DSL 和 Java DSL:
- 您可以在 VS Code outline面板中导航到端点,并在 File 导航面板中导航到 Go > ; Go to Symbol。
- 键入时,编辑器为 Camel 组件、属性和属性值列表提供代码完成。
- 当您将鼠标悬停在 Camel 组件上时,编辑器会显示组件的简短描述(来自 Apache Camel 组件参考)。
- 编辑文件时,编辑器对 Camel 代码执行 Apache Camel 验证检查。
- 您可以选择 File → preferences → Settings → Apache Camel Tooling → Camel catalog version 来指定特定的 Camel Catalog 版本。
- 您可以使用 "Quick fix" 功能解决无效的 enum 值和未知 Camel URI 组件属性。
只适用于 XML DSL:
- 您可以在 VS Code outline面板中导航到 Camel 上下文和路由,并在 File 导航面板中导航到 Go > ; Go to Symbol。
-
键入时,编辑器为直接、
和直接虚拟机、VMSEDA组件所引用 ID 提供代码完成。 -
您可以在所有打开的 Camel
文件中查找直接和直接虚拟机组件的引用。
对于属性:
- Camel 组件属性的完成
- 诊断
要访问 Apache Camel 功能的语言支持,您可以添加一个或多个扩展。
Apache Camel 扩展包 会安装以下 VS Code 扩展:
另外,您还可以单独安装扩展。
如需了解更多详细信息,请参阅以下 readme 文件:
- README for Apache Camel Extension Pack
- Visual Studio Code 的 Apache Camel Language Server Protocol 的README
- README 用于 Atlas Map Data Transformation 编辑器
Eclipse IDE 功能
Apache Camel Eclipse 插件的语言支持为 Camel URI 提供以下功能:
在 XML DSL 和 Java DSL 的通用 Eclipse 文本编辑器中:
- 键入时,编辑器为 Camel 组件、属性和属性值列表提供代码完成。
- 当您将鼠标悬停在 Camel 组件上时,编辑器会显示组件的简短描述(来自 Apache Camel 组件参考)。
要访问 Apache Camel 功能的语言支持,您可以从 Eclipse Marketplace 安装 Eclipse 插件。如需了解更多详细信息,请参阅 Eclipse IDE 的 Apache Camel Language Server Protocol 的 readme 文件。
Eclipse Che 功能
Eclipse Che 7 Apache Camel 插件的语言支持提供了 XML DSL 和 Java DSL 中的 Camel URI 功能。
- 键入时,编辑器为 Camel 组件、属性和属性值列表提供代码完成。
- 当您将鼠标悬停在 Camel 组件上时,编辑器会显示组件的简短描述(来自 Apache Camel 组件参考)。
- 保存该文件时,编辑器会对 Camel 代码执行 Apache Camel 验证检查。
要为 Eclipse Che 激活此插件,您可以使用基于 Spring Boot 的 "Apache Camel 堆栈或编辑工作区配置。
4.4. Fuse 7.11 和 Fuse 7.11.1 的 BOM 文件
要将 Maven 项目配置为使用支持的 Fuse 7.11 或 7.11.1 工件,请使用本节中记录的 BOM 版本。
4.4.1. 用于 Fuse 7.11.1 的 BOM 文件
要升级 Fuse 独立应用程序以使用 7.11.1 依赖项,请编辑 Maven pom.xml 并修改下表中列出的 BOM 和 Maven 插件的版本:
表 4.1. 使用 BOM 的 Maven BOM 和插件版本
| 容器类型 | Maven BOM 或 Plugin Artifact groupId/artifactId | Fuse 7.11.1 的版本 |
|---|---|---|
| Spring Boot 2 |
|
|
|
|
| |
| Apache Karaf |
|
|
|
|
| |
| JBoss EAP |
|
|
有关使用 BOM 的详情,请查看 迁移指南。
4.4.2. 用于 Fuse 7.11 的 BOM 文件
要升级 Fuse 独立应用程序以使用 7.11 依赖项,请编辑 Maven pom.xml 并更改下表中列出的 BOMs 和 Maven 插件版本:
表 4.2. 使用 BOM 的 Maven BOM 和插件版本 7.11
| 容器类型 | Maven BOM 或 Plugin Artifact groupId/artifactId | Fuse 7.11 的版本 |
|---|---|---|
| Spring Boot 2 |
|
|
|
|
| |
| Apache Karaf |
|
|
|
|
| |
| JBoss EAP |
|
|
有关使用 BOM 的详情,请查看 迁移指南。
4.5. 重要备注
Fuse standalone distribution 的 Fuse 7.11 版本的重要备注:
- Apache Karaf 支持 Java 11
- Fuse 7.11 版本支持 Apache Karaf 运行时中的 Java 11。
- 对 Karaf 运行时和 JBoss EAP 的支持已被弃用
- 在 Fuse 7 期间,对 PackageKit 运行时和 JBoss EAP 的支持将被弃用,因为 Fuse 7 将不使用 Fuse 7.11 版本的支持。
- 使用 MongoClients factory 创建到 MongoDB 的连接
从 Fuse 7.10 和更高版本中,使用
com.mongodb.client.MongoClient而不是com.mongodb.MongoClient创建与 MongoDB 的连接(请注意完整路径中的额外 .client 子软件包)。这会影响任何使用
camel-mongodb的用户应用程序,该应用程序现在需要创建作为com.mongodb.client.MongoClient实例的连接。此外,此类公开的方法与旧类不完全相同,后者可能需要更多重构用户代码。例如,创建与 MongoDB 的连接,如下所示:
import com.mongodb.client.MongoClient;
然后您可以创建 MongoClient bean,如下例所示:
return MongoClients.create("mongodb://admin:password@192.168.99.102:32553");
第 5 章 弃用和删除功能
如果您需要任何帮助,或者对 Fuse 7 中的后续更改有任何疑问,请联系 support@redhat.com。
5.1. 已弃用
以下功能在 Fuse 7.11 中已弃用,并可能在以后的版本中删除:
- 对 Fuse Online 的支持已被弃用
- 在维护支持中,Fuse 7 对 Fuse Online 的支持现已弃用。当 Fuse 7 脱离支持时,将不会对 Fuse Online 进行任何未来开发。
- 对KEEPOS 运行时和 JBoss Enterprise Application Platform(EAP)的支持已弃用
- 当 Fuse 7 在 2024 年 6 月 30 日不继续获得支持时,对 Btrfs 的运行和 JBoss Enterprise Application Platform(EAP)的支持将停止。当 Fuse 7 移出支持时,Camel 将不再受支持到 Karaf OSGi 或 JBoss EAP。
- OpenWire 协议已弃用
- 自 Fuse 7.10 起,使用 OpenWire 协议(可用于连接 AMQ Broker 实例)已被弃用。请注意,自 AMQ Broker 版本 7.9.0 开始,AMQ Broker 还弃用了 OpenWire 协议。
wsdl2rest工具已弃用-
自 Fuse 7.10
起,wsdl2rest命令行工具已弃用。VS Code 的 WSDL 2 Camel Rest DSL 扩展也已弃用。 - 在 OCP 4 上安装 Fuse Online 安装脚本
- 自 Fuse 7.8 起,Fuse Online 安装脚本已弃用,以便在 OpenShift Container Platform(OCP)4.x 版本上安装 Fuse Online。在 OCP 4.x 版本中,建议您使用 Fuse Online Operator。
- PHP、Python 和 Ruby 脚本语言在 Camel 应用程序中已弃用
- 自 Fuse 7.4 起,PHP、Python 和 Ruby 脚本语言已弃用,并将在以后的版本中删除。Camel 社区弃用了 PHP、Python 和 Ruby,自 Camel 2.19 开始(请参阅 CAMEL-10973)。这适用于所有 Fuse 容器类型:Apache Karaf、JBoss EAP 和 Spring Boot。
- HP-UX OS 已被弃用
- 自 Fuse 7.2 起,HP-UX 操作系统已弃用,并可能在以后的 Fuse 版本中删除对这个操作系统的支持。特别是,JBoss EAP 7.2 容器已丢弃了对 HP-UX 的支持,因此以后在 JBoss EAP 7.2 上运行的 JBoss EAP 上的 Fuse 版本都 不会在 HP-UX 上被支持。
- Camel LAST 组件已弃用
- Camel LAST 组件在 Fuse 7.0 中已弃用,并将在以后的版本中删除。您可以使用 Camel Paho 组件来替代,它支持使用流行 Eclipse Paho 库的 MCG 消息协议。
- 除 Linux 之外,Camel LevelDB 组件在所有操作系统中弃用
-
自 Fuse 6.3 起,除 Red Hat Enterprise Linux 之外,Camel LevelDB( Camel LevelDB )组件已在所有操作系统中弃用。
未来,Camel LevelDB 组件仅支持 Red Hat Enterprise Linux。 - 来自 Camel SJMS 组件的 BatchMessage 类已弃用
- Camel SJMS 组件中的 BatchMessage 类已在 Fuse 7 中弃用(自版本 2.17 起已弃用),并且可能会从 Apache Camel 和 Fuse 的未来版本中移除。
5.2. 在 Fuse 7.11 中删除
- 在 OCP 3.11 上安装 Fuse Online
- 不支持在 OCP 3.11 上安装 Fuse 在线环境 7.11。在 OCP 3.11 上安装 Fuse Online 时,完全删除了 Fuse Online 安装脚本。
- 由 camel-ftp 和 camel-ssh 默认不支持 RSA/SHA-1 Ciphers
在 Fuse 7.11 中,
camel-ftp和camel-ssh组件将不再支持 RSA/SHA-1 密码的 TLS。依赖于 JSch 库的其他 Camel 组件也可能会受到影响。如需更多信息,请参阅此 红帽客户门户网站文章。
5.3. 在 Fuse 7.10 中删除
- fabric8-maven-plugin
-
fabric8-maven-plugin已从 Fuse 7.10 完全移除。我们建议您使用openshift-maven-plugin在 OpenShift 上的 Fuse 中构建和部署 Maven 项目。该插件由 Eclipse JKube 维护,它为插件提供了大量 文档。
5.4. 在 Fuse 7.8 中删除
- Spring Boot 1
- Fuse 7.8 不再支持 Spring Boot 1。我们建议将 Spring Boot 应用程序迁移到 Spring Boot 2,按照 Spring Boot 2.0 迁移指南 中的指导。
- Fuse Online 中的 Camel K 运行时
- Fuse 7.8 中不再支持 Fuse Online 中的 Camel K 运行时(技术预览功能)。
- 7.8 中已删除 Camel XmlJson 组件
-
Camel XmlJson(
camel-xmljson)组件已在 Fuse 7.8 中删除。
5.5. 在 Fuse 7.5 中删除
Fuse 7.5 中删除了以下功能:
- 对与 MS SQL Server 2014 的集成在 7.5 中已被丢弃
- MS SQL Server 2014 已不再经过测试并支持与 Fuse 7.5 集成。我们建议您使用最新版本的 MS SQL 服务器版本,而使用 MS SQL Server 2016 或 2017 版本(如 MS SQL Server 2016 或 2017)。
- Camel LinkedIn 组件已在 7.5 中删除
camel-linkedin组件已在 Fuse 7.5 中删除。重要虽然从 Fuse 7.5 中删除,但
camel-linkedin组件可能会在以后的版本中恢复。
5.6. 在 Fuse 7.3 中删除
Fuse 7.3 中删除了以下功能:
- 7.3 中删除 Camel YQL 组件
- Camel YQL 组件已在 Fuse 7.3 中删除。
- 7.3 中删除了 openjpa 和 OpenJPA3 Karaf 功能
-
openjpa功能和openjpa3功能已从 7.3 中的 Apache Karaf 容器中删除。对于 Java Persistence 架构(JPA)实施,改为使用支持的hibernate功能。 - 7.3 中删除了 Camel-jettytty 功能
-
camel-jetty功能已从 7.3 中的 Apache Karaf 容器中删除,因为它使用 Jetty 8。改为使用camel-jetty9功能。 - 7.3 中删除了 pax-jms-oracleaq Karaf 功能
-
pax-jms-oracleaq功能已从 7.3 中的 Apache Karaf 容器中删除,因为它需要第三方、非免费的 Oracle AQ 库。 - 7.3 中的 Camel-elasticsearch 组件已从 EAP(Wildfly Camel)上的 Fuse 中删除
-
在 7.3 年,
camel-elasticsearch组件已从 EAP(Wildfly Camel)上的 Fuse 中删除。使用较新的camel-elasticsearch-rest组件。
5.7. 在 Fuse 7.2 中删除
Fuse 7.2 中删除了以下功能:
- Camel XMLRPC 组件已在 7.2 中删除
- Camel XMLRPC 组件已在 Fuse 7.2 中删除。
- Camel Netty 组件已在 7.2 中删除
- Camel Netty 组件已在 Fuse 7.2 中删除。建议您使用 Camel Netty4 组件替代它。
5.8. 在 Fuse 7.0 中删除
Fuse 7.0 中删除了以下功能:
- 7.0 中删除了对 Red Hat JBoss Operations Network(JON)的支持
- 自 Fuse 7.0 起,Hyperton 上的 Fuse 不再支持 JON,不再提供 JON 插件与 JON 运行时集成。
- 嵌入的 ActiveMQ 代理已在 7.0 中删除
- 自 Fuse 7.0 起,ESD 上的 Fuse 不再提供一个嵌入式 ActiveMQ Broker。客户应该直接连接到受支持的远程代理。有关我们支持的代理的更多信息,请参阅 Red Hat Fuse 支持的配置页面中的 "支持消息提供者"部分。
- 7.0 中删除了 Fuse 集成包
- 对运行规则和流程的支持由红帽 JBoss BPM 套件和红帽 JBoss BRMS 提供组件。
- 7.0 中删除了用于子容器管理的servlet 控制台命令
自 Fuse 7.0 起,不支持 用于子容器管理的 Karaf 控制台命令。也就是说,不支持以
实例为前缀的控制台命令:(Karaf 4.x 语法)和带有admin:(Karaf 2.x 语法)的控制台命令。注意在 Fuse 7.0 GA 发行版本中,
实例:命令不会被删除。这是个已知问题。- 7.0 中删除了 SwitchYard
- 自 Fuse 7.0 起,SYY 已被删除,您应该直接使用 Apache Camel。如需更多信息,请参阅知识库文章 SwitchYard 支持计划 after Releasing Fuse 7。
- 7.0 中删除了对 Fabric8 1.x 的支持
自 Fuse 7.0 起,Fabric8 v1 已被 OpenShift 上的 Fuse(以前为 Fuse 集成服务)替代,其中包括 Fabric8 v2 技术的组件。OpenShift 上的 Fuse 提供一组工具和 Docker 格式镜像,支持 OpenShift 中集成微服务的开发、部署和管理。
虽然 OpenShift 上的 Fuse 具有不同的架构,但其满足 Fabric8 v1 提供的相同的配置、自动化、中央配置和管理要求。如需更多信息,请参阅 OpenShift 上的 Fuse 指南。
- 7.0 中删除了 Google App Engine 的 Camel 组件
-
在 Fuse 7.0 中删除了 Google App Engine(
camel-gae)的 Camel 组件。 - Camel jBPM 组件已在 7.0 中删除
-
Camel jBPM 组件(
camel-jbpm)已在 Fuse 7.0 中删除。 - 7.0 中删除了基于 Fuse 作为服务的 Tanuki 打包程序
-
Fuse 7.0 中删除了基于 Tanuki 的 Tanuki,它采用
wrapper:installKaraf console 命令(用于安装 Fuse 作为服务)生成的 Tanuki 脚本(它)。要将 Apache Karaf 容器安装为一个服务,建议您使用bin/contrib目录中的新karaf-service-*.sh脚本。 - 7.0 中删除了 Smooks
- 自 Fuse 7.0 起,Smooks 组件已被删除。
- 7.0 中删除了 BPEL
- BPEL(基于 Riftsaw 项目)已从 Fuse 7.0 中删除。如果您目前正在使用 BPEL,则建议您考虑迁移到 Red Hat JBoss BPM 套件。
- 7.0 中删除了设计时间监管
- 7.0 中删除了 Design Time Governance 组件。
- 7.0 中删除了运行时监管
- 从 Fuse 7.0 开始,删除了 Runtime Governance(RTGov)组件。
- 7.0 中删除了 S-RAMP
- Fuse 7.0 中删除了 SOA Repository Artifact Model and Protocol(S-RAMP)组件。
- bin/patch 脚本已在 7.0 中删除
-
bin/patch脚本(bin\patch.baton Windows O/S)已在 Fuse 7.0 中删除。 - 7.0 不支持 Spring Dynamic Modules(Spring-DM)
- Fuse 7.0 不支持 Spring-DM(将 Spring XML 与 JWT 服务层集成)在 Fuse 7.0 中不被支持,您应该使用 Blueprint 框架。使用 Blueprint XML 不会阻止您从 Spring 框架中使用 Java 库:Spring 的最新版本与 Blueprint 兼容。
- 7.0 不支持 Apache OpenJPA
- Fuse7.0 中不支持 Java Persistence API(JPA)的 Apache OpenJPA 实现。建议您使用 Hibernate 实现。
5.9. 在 Fuse 7.0 中替代
Fuse 7.0 中取代了以下功能:
第 6 章 Fuse 7.11 中不支持的功能
Red Hat Fuse 7.11 不支持以下功能。
- IBM PowerPC 和 Z 平台上的 Fuse 不支持 Camel
-leveldb组件 - 当在 IBM PowerPC 或 IBM Z 平台上安装 Fuse 时,不支持 Camel LevelDB 组件。
- OpenShift Container Platform (OCP) 3.11 不支持安装和运行 Fuse Online
- OpenShift Container Platform (OCP) 3.11 不支持安装和运行 Fuse Online,因为 Fabric8 Maven 插件已弃用,而是使用 OpenShift Maven 插件。
- OCP 3.11 不支持使用 Operator 安装 Fuse 控制台
- 不支持使用 Operator 安装 Fuse 控制台,无法在 OpenShift Container Platform (OCP) 3.11 上工作。在 OCP 3.11 上安装 Fuse 控制台的建议方法是使用模板。
- 不支持 Apache Karaf EclipseLink 功能
- Fuse 不支持 Apache Karaf EclipseLink 功能,因为此功能取决于 JPA 2.2,而 Fuse 7.2 的 Fuse 7.2 容器则与 JPA 2.1 一致。
- 不支持 Apache Aries Blueprint Web 模块
- Fuse 不支持 Apache Aries Blueprint Web 模块。在 Apache Camel 社区版本(作为单独的下载提供)中包括 Blueprint Web 的示例并不表示,在 Fuse 中不支持此功能。
- Apache Karaf 上的 Apache Camel 不支持 PHP 脚本语言
- Apache Karaf 容器上的 Camel 应用程序 不支持 PHP 脚本语言,因为 PHP 没有可用的 OSGi 捆绑包。在 JBoss EAP 容器和 Spring Boot 容器上的 Camel 应用程序中,PHP 脚本语言已弃用。
- Apache Karaf 上的 Apache Camel 不支持 Python 脚本语言
- Apache Karaf 容器上的 Camel 应用程序 不支持 Python 脚本语言,因为 Python 中没有可用于 Python 的 OSGi 捆绑包。在 JBoss EAP 容器和 Spring Boot 容器上的 Camel 应用程序中,Python 脚本语言已弃用。
第 7 章 已知问题
以下小节描述了版本 7.11 中已知的问题。
7.1. CVE 安全漏洞
作为中间件集成平台,Fuse 可能与大量第三方组件集成。Fuse 的一些第三方依赖关系可能并非始终存在安全漏洞。本节记录了与影响 Fuse 7.11 的第三方依赖项相关的常见漏洞和暴露(CVE)的内容。
- CVE-2020-13936 CVE-2020-13936 velocity: 当攻击者可以修改模板时任意代码执行
可以修改 Velocity 模板的攻击者可以执行任意 Java 代码,或者运行具有与运行 Servlet 容器的帐户相同的权限的任意系统命令。这适用于允许不受信任的用户上传/修改 velocity 模板的应用程序,运行 Apache Velocity Engine 版本最多为 2.2。
Fuse 7.9(及更高版本)已修改它的依赖项,以确保它只使用对这个安全漏洞进行保护的 Velocity 版本(即 2.3)。如果您的应用程序代码对 Apache Velocity 组件有任何明确的依赖关系,我们建议升级这些依赖项以使用修复的版本。
- ENTESB-8113 CVE-2018-10237 guava: Unbounded memory allocation in AtomicDoubleArray 和 CompoundOrdering 类允许远程攻击者拒绝服务 [fuse-7.0.0]
Google Guava 版本 11.0 到 24.1,它们容易受到
AtomicDoubleArray类中的无限内存分配的影响(当使用 Java 序列化序列化)和CompoundOrdering类(使用 GWT 序列化处理时)。攻击者可以利用使用 Guava 和 deserialize 不信任的数据的应用程序,从而导致拒绝 service attack- the the more details 部分,请参阅 CVE-2018-10237。要避免此安全漏洞,我们建议您:
-
从不反对
AtomicDoubleArray实例或来自未知源的CompoundOrdering实例进行反序列化。 - 避免使用 Guava 版本 24 及更早版本(在某些情况下,无法避免旧版本)。
为了更便于避免早期(专用)版本 Guava,Fuse 7.7(及更高版本)已将 Maven Bill of Materials(BOM)文件配置为默认选择 Guava 27。这意味着,如果您将 Fuse BOM 合并到 Maven 项目中(通过将 BOM 的依赖项添加到 POM 文件的
dependency部分),然后在不指定显式版本 的情况下 对 Guava 工件指定依赖项,则 Guava 版本将默认为 BOM 中指定的版本,这是 Fuse 7.7 BOM 版本的版本。但是,至少有一种常见用例涉及 Apache Karaf(OSGi)容器,因此无法避免使用存在安全漏洞的 Guava 版本:如果您的 OSGi 应用程序使用 Guava 和 Swagger 一起,则您仍然使用 Guava 20,因为这是 Swagger 所需要的版本。在这里,我们解释了为什么是这种情况以及如何配置 POM 文件以恢复之前(可用)Gusava 20 库。首先,您需要了解 双 OSGi 链 的概念。
双 OSGi 链
OSGi 运行时中的捆绑包使用软件包约束(软件包名称 + 可选版本/range)和导出来连接。每个捆绑包都可以有多个导入,通常这些导入会将给定捆绑包与多个捆绑包相连接。例如:
BundleA +-- BundleB | +-- BundleCa +-- BundleCb
其中
BundleA依赖于BundleB和BundleCb,而BundleB则依赖BundleCa。和BundleCaBundleCb应该是相同的捆绑包,如果导出了相同的软件包,但由于版本(范围)限制,BundleB使用(有线到)不同的修订版本/版本与BundleA不同。重新编写上图以反映应用程序里的 Guava 和 Swagger 依赖关系时会发生什么:
org.jboss.qe.cxf.rs.swagger-deployment +-- Guava 27 +-- Swagger 1.5 +-- reflections 0.9.11 +-- Guava 20如果您尝试部署此捆绑包配置,您会看到错误,即
org.osgi.framework.BundleException: Uses constraint violation。恢复到 Guava 20
如果您的项目同时使用 Guava 和 Swagger 库(直接或间接地),您应该将
maven-bundle-plugin配置为使用显式版本范围(或没有范围)用于 Guava 捆绑包导入,如下所示:<Import-Package> com.google.common.base;version="[20.0,21.0)", com.google.common.collect;version="[20.0,21.0)", com.google.common.io;version="[20.0,21.0)" </Import-Package>此配置会强制您的 OSGi 应用程序恢复到(vulnerable)Guava 20 库。因此,在这种情况下,避免反序列化
AtomicDoubleArray实例非常重要。-
从不反对
- CVE-2017-12629 Solr/Lucene -security bypass to access sensitive data - CVE-2017-12629
Apache Solr 是一个流行的开源搜索平台,它使用 Apache Lucene 搜索引擎。如果您的应用程序将 Apache Solr 与 Apache Lucene 结合使用(例如,在使用 Camel Solr 组件时),这会受到此安全漏洞的影响。有关此漏洞的详情,请参阅链接的安全公告以及相关的缓解方案步骤。
注意Fuse 运行时 不会直接 使用 Apache Solr 或 Apache Lucene。只有在集成应用程序上下文中同时使用 Apache Solr 和 Apache Lucene(例如,在使用 Camel Solr 组件时),才会出现安全风险。
- CVE-2021-30129 mina-sshd-core: Apache Mina SSHD Server 中的内存泄漏服务
Apache Mina SSHD 的 sshd-core 中的一个漏洞允许攻击者溢出服务器导致 OutOfMemory 错误。此问题会影响 Apache Mina SSHD 版本 2.0.0 及更新版本的 SFTP 和端口转发功能。它已在 Apache Mina SSHD 2.7.0 中解决
Apache Mina SSHD 中的这个安全漏洞已被 SSHD-1004 解决,它弃用了具有此漏洞的某些加密算法。在 JBoss EAP 上的 Fuse 7.10 和 Fuse 7.10 中,仍然支持这些已弃用的算法(出于向后兼容的原因)。但是,如果您使用这些已弃用的算法之一,强烈建议您重构应用程序代码以使用不同的算法。
在 Fuse 7.10 中,默认加密算法已更改,如下所示。
Fuse 7.9 Fuse 7.10 在 Fuse 7.10 中已弃用? aes128-ctraes128-ctraes192-ctraes256-ctraes128-gcm@openssh.comaes256-gcm@openssh.comarcfour128arcfour128是
aes128-cbcaes128-cbcaes192-cbcaes256-cbc3des-cbc3des-cbc是
blowfish-cbcblowfish-cbc是
在 Fuse 7.10 中,默认密钥交换算法已更改,如下所示。
Fuse 7.9 Fuse 7.10 在 7.10 中已弃用? diffie-hellman-group-exchange-sha256diffie-hellman-group-exchange-sha256ecdh-sha2-nistp521ecdh-sha2-nistp521ecdh-sha2-nistp384ecdh-sha2-nistp384ecdh-sha2-nistp256ecdh-sha2-nistp256diffie-hellman-group18-sha512diffie-hellman-group17-sha512diffie-hellman-group16-sha512diffie-hellman-group15-sha512diffie-hellman-group14-sha256diffie-hellman-group-exchange-sha1diffie-hellman-group-exchange-sha1是
diffie-hellman-group1-sha1diffie-hellman-group1-sha1是
7.2. Fuse Online
Fuse 在线分布有以下已知问题:
- 在 OCP 4.9(或更新版本)上带有 Prometheus 和 Grafana 的 ENTESB-17674 Monitoring Fuse Online 需要临时解决方案
在 OCP 4.9(或更新版本)上,
application-monitoring项目不再可以正常工作。它是通过 Prometheus 和 Grafana 监控 Fuse 在线集成和基础架构组件的先决条件。要临时解决这个问题,您可以使用 内置的监控堆栈(在
openshift-monitoring命名空间中 )使用openshift-user-workload-monitoring功能,以及grafana-operator来使用ops addon,如这些 发行注记的 Fuse Online 部分所述。- 由 Syndesis 1.11 安装的 ENTESB-14518 Jaeger operator 会影响其他命名空间
-
自 Fuse 7.8 起,当您在 OpenShift 集群上安装 Fuse 7.8 Online(Syndesis 1.11)时,Jaeger Operator(随 Fuse Online 一起安装)会被配置为默认管理 所有命名空间。此行为的一个副作用是,当您已在集群中安装了 Fuse 7.7 Online(Syndesis 1.10),然后在不同的命名空间中安装 Fuse 7.8 Online,带有 Fuse 7.8 Online 的 Jaeger Operator 会尝试管理(旧的)Jaeger Operator。其结果是,在 Fuse 7.7 Online 命名空间中,新的
pod>_<-jaeger pod>_<-jaeger pod horizontallys and newsyndesis-jaegersyndesis-jaegerPod 进入 CrashLoopBackOff 状态后,新的 syndesis-jaeger pod 便是CrashLoopBackOff状态。原始 Fuse 7.7 Online 实例不受影响,崩溃的syndesis-jaegerpod 可以安全忽略。 - 已部署集成 API 的 ENTESB-13966 发现看似禁用,但实际上没有被禁用
- 从 Fuse 7.7 开始,在创建一个包含 API 的新集成后,集成详情页面会错误地表示该集成禁用了 3scale 发现功能。另外,集成详情页面不会显示 API URL。单击此按钮三次(单击 Enable,然后单击 Disable,然后单击 Enable),您可以重新同步页面,以便启用 3scale discovery,并显示 API URL。
7.3. OpenShift 中的 Fuse
本节列出了影响在 OpenShift 中部署 Fuse 应用程序的问题。有关影响特定容器的问题的详细信息,请参阅 Spring Boot、Apache Karaf 上的 Fuse 以及 JBoss EAP 上的 Fuse 部分。OpenShift 分发的 Fuse 有以下已知问题:
- ENTESB-21335
patch-maven-plugin无法与 Maven 3.9 一起工作 Maven 3.9.2 不明确传递
org.apache.maven.plugin.internal.PlexusUtilsInjector作为依赖项图形转换器。如需更多信息,请参阅 Maven 问题 MNG-6965。
作为临时解决方案,您可以将
plexus-utils添加为patch-maven-plugin依赖项:<build> <plugins> <plugin> <groupId>org.jboss.redhat-fuse</groupId> <artifactId>patch-maven-plugin</artifactId> <version>${version.redhat.fuse}</version> <extensions>true</extensions> <dependencies> <dependency> <groupId>org.codehaus.plexus</groupId> <artifactId>plexus-utils</artifactId> <version>3.5.1</version> </dependency> </dependencies> </plugin> </plugins> </build>- ENTESB-17895 [ Fuse Console ] Upgrade subscription does not update Hawtio
- 在 Fuse 7.10 中,如果您通过将 Operator 订阅频道改为版本 7.10 来更新 Fuse 控制台,则 Fuse 控制台保留在 vesion 7.9 中。即使 Fuse 控制台容器和 pod 具有标签 7.10,它们仍然在使用 7.9 镜像。要临时解决这个问题,请通过删除旧版本的 Fuse 控制台来执行升级,然后进行全新的 Fuse 控制台版本 7.10 安装。
- ENTESB-17861 Apicurito 生成器无法生成 Fuse Camel 项目
在 Fuse 7.10 中,如果 API Designer(Apicurito)通过 Apicurito Operator 安装(无效证书错误)无法正常工作。要临时解决这个问题:
打开
htps://apicurito-service-generator-apicurito.apps.cluster-name.openshift.com的新标签页(将
cluster-name.openshift.com替换为您的集群名称。)- 接受证书。
- 切换到应用程序,然后再次点击 generate 按钮。
- ENTESB-17836 [ Fuse Console ] A 新添加的路由不会在 Camel 树中显示
- 在 Fuse 7.10 中,部署应用程序后的路由(或路由)不会显示在 Fuse 控制台上的 Camel 树中。您可以通过刷新页面来解决此问题,这样应该使路由出现。
OCP 上的 ENTESB-19351 FIPS - Jolokia 代理不会因为不支持的安全编码而无法启动
在 Fuse 7.11 中,由于不支持的安全编码,在启用了 FIPS 的 Jolokia 代理中不可用。
OCP 上的 ENTESB-19352 FIPS - karaf-maven-plugin assembly 目标无法不支持的安全供应商
在 Fuse 7.11 中,如果我们使用带有 assembly 目标的 karaf-maven-plugin,则二进制流部署策略在 OCP FIPS 上会失败。
7.4. Apache Karaf 上的 Fuse
Apache Karaf 上的 Fuse 有以下已知问题:
- ENTESB-16417 凭证存储默认使用 PBEWithSHA1AndDESede
- OpenJDK 8u292 和 OracleJDK 1.8.0_291 中的安全 API 会返回一个不完整的安全供应商列表,这会导致 Apache Karaf 中的凭证存储失败(因为所需的安全供应商似乎不可用)。导致此问题的底层问题是 https://bugs.openjdk.java.net/browse/JDK-8249906。我们建议您使用更早的 OpenJDK 版本、OpenJDK 8u282 或更高的 OpenJDK 版本 OpenJDK 8u302,它们没有此程序错误。
- Windows 上的 ENTESB-16526 fuse-karaf 在 patch:install 期间无法重启
在 Windows 平台上运行
patch:install时,在某些情况下,您可能会在patch:install命令尝试自动重启容器时遇到以下错误:Red Hat Fuse starting up. Press Enter to open the shell now... 100% [========================================================================] Karaf started in 18s. Bundle stats: 235 active, 235 total '.tmpdir' is not recognized as an internal or external command, operable program or batch file. There is a Root instance already running with name ~14 and pid ~13. If you know what you are doing and want to force the run anyway, SET CHECK_ROOT_INSTANCE_RUNNING=false and re run the command.
如果您遇到这个错误,只需手动重启 Karaf 容器。
- 默认情况下,ENTESB-8140 的热部署捆绑包的启动级别是 80
从 Fuse 7.0 GA 发行版本中,在 Apache Karaf 容器中,热部署捆绑包的启动级别是 80。这可能会对热部署捆绑包造成问题,因为有很多系统捆绑包和功能,它们具有相同的启动级别。要临时解决这个问题,并确保热部署捆绑包启动,编辑
etc/org.apache.felix.fileinstall-deploy.cfg文件并更改felix.fileinstall.start.level设置,如下所示:felix.fileinstall.start.level = 90
- ENTESB-7664 安装框架-安全性功能终止 karaf
必须使用
--no-auto-refresh选项安装framework-securityOSGi 功能,否则此功能将关闭 Apache Karaf 容器。例如:feature:install -v --no-auto-refresh framework-security
7.5. JBoss EAP 上的 Fuse
JBoss EAP 上的 Fuse 有以下已知问题:
- 在 EAP 域模式中的 ENTESB-13168 Camel 部署无法在 Windows 上工作
- 从 Fuse 7.6.0 启动 JBoss EAP 上的 Fuse 7.6.0,无法将 Camel 子系统部署在 Windows OS 上的 JBoss EAP 上。
7.6. Fuse 工具
Fuse 工具有以下已知问题:
- ENTESB-17705 [ Hawtio ] Logout 按钮消失
- 在 Fuse 7.10 中,登录并连续多次登录后不显示 Logout 按钮。要临时解决这个问题,您可以刷新页面一次或多次,Logout 按钮应该重新显示。
- ENTESB-17839 Fuse + AtlasMap: Unrecognized 字段 "dataSourceType"
- 在 Fuse 7.11 中,如果用户想使用 AtlasMap vscode 扩展,则它们必须使用 0.0.9 版本 0.0.9,因为 Fuse 7.11 带有 AtlasMap 2.3.x。否则使用 AtlasMap 独立 2.3.x,而不是 vscode-extension。
7.7. Apache Camel
Apache Camel 有以下已知问题:
- 在 karaf 上带有嵌入式 undertow 服务器的 cxf 支持 ENTESB-19361 / UNDERTOW-2206 访问日志日志
如果
DECODE_URL选项为true(这是 Fuse 7.11.1 karaf 运行时的默认值),并使用HttpServerExchange来解码relativePath和requestPath,则requestURI参数仍然编码。分配方法(
转发,包括、sync 和error)为requestPath和relativeURL分配路径,这会导致分配给路径,如/some%20thing。- ENTESB-15343 XSLT 组件无法与 IBM1.8 JDK 正常工作
-
在 Fuse 7.8 中,Camel XSLT 组件无法与 IBM 1.8 JDK 正常工作。此问题发生的原因是,XSLT 的底层 Apache Xerces 实现不支持
javax.xml.XMLConstants#FEATURE_SECURE_PROCESSING属性(请参阅 XERCESJ-1654)。 - ENTESB-11060 [ camel-linkedin ] V1 API 不再被支持
- 自 Fuse 7.4.0 起,Camel LinkedIn 组件无法再与 LinkedIn 服务器通信,因为它使用 LinkedIn 版本 1.0 API 实现,不再受 LinkedIn 版本 1.0 API 的支持。Camel LinkedIn 组件将更新为在以后的 Fuse 版本中使用版本 2 API。
- ENTESB-7469 Camel Docker 组件无法使用 EAP 上的 Unix 套接字连接
-
自 Fuse 7.0 起,
camel-docker组件只能通过其 REST API 连接到 Docker,而不通过 UNIX 套接字连接。 - ENTESB-5231 PHP 脚本语言无法正常工作
- Apache Karaf 容器上的 Camel 应用程序 不支持 PHP 脚本语言,因为 PHP 没有可用的 OSGi 捆绑包。
- ENTESB-5232 Python 语言无法正常工作
- Apache Karaf 容器上的 Camel 应用程序 不支持 Python 脚本语言,因为 Python 中没有可用于 Python 的 OSGi 捆绑包。
- ENTESB-2443 Google 邮件 API - 发送信息和草案是不同步的
- 当您发送消息或草案时,响应包含一个带有 ID 的 Message 对象。无法立即通过对 API 的另一个调用来获取此消息。您可能需要等待和重试调用。
- ENTESB-2332 Google 驱动 API JSON 响应,对第一个页面返回错误项数
-
Google Drive API JSON 响应针对第一个页面返回错误项目的项。为列表操作设置
maxResults可能不会在第一个页面中返回所有结果。您可能需要浏览多个页面来获取完整的列表(这通过在新请求中设置pageToken)。
第 8 章 修复了 Fuse 7.11、7.11.1 和 {version-micro-1-patch-1} 中的问题
以下小节列出了 Fuse 7.11 中已修复的问题:
8.1. Fuse {version-micro-1-patch-1} 中的增强
| 问题 | 描述 |
|---|---|
| 对 fuse-karaf-framework 进行补丁 查看 patch-maven-plugin → karaf-maven-plugin 通信 |
8.1.1. Fuse Online {version-micro-1-patch-1}
通过修复 ENTESB-18335,您可以在构建自定义 Karaf 分发的 Maven 项目中使用来自 patch-maven-plugin 的补丁信息。
您可以通过在 org.jboss.redhat-fuse/patch-maven-plugin 和 org.jboss.redhat-fuse/karaf-maven-plugin (一个 repackaged org.apache.karaf.tooling/karaf-maven-plugin)之间传递补丁元数据信息来实现此目的。但是,此信息的格式与 org.apache.maven.plugins/maven-surefire-plugin 不兼容。
使用 org.jboss.redhat-fuse/karaf-maven-plugin
8.1.1.1. 普通场景
在使用 Fuse Karaf、Fuse Spring Boot 和 Fuse EAP 时,使用相关的 BOM 非常重要,如下例所示:
Fuse Karaf
<properties>
<version.org.jboss-redhat-fuse>7.11.1.fuse-sb2-7_11_1-00017-redhat-00002</version.org.jboss-redhat-fuse>
</properties>
...
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.jboss.redhat-fuse</groupId>
<artifactId>fuse-karaf-bom</artifactId>
<version>${version.org.jboss-redhat-fuse}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
Fuse EAP
<properties>
<version.org.jboss-redhat-fuse>7.11.1.fuse-sb2-7_11_1-00017-redhat-00002</version.org.jboss-redhat-fuse>
</properties>
...
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.jboss.redhat-fuse</groupId>
<artifactId>fuse-eap-bom</artifactId>
<version>${version.org.jboss-redhat-fuse}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
Fuse SpringBoot
<properties>
<version.org.jboss-redhat-fuse>7.11.1.fuse-sb2-7_11_1-00017-redhat-00002</version.org.jboss-redhat-fuse>
</properties>
...
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.jboss.redhat-fuse</groupId>
<artifactId>fuse-springboot-bom</artifactId>
<version>${version.org.jboss-redhat-fuse}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
使用这些 BOMS 时,您通常会声明 karaf-maven-plugin,如下所示:
karaf-maven-plugin 声明示例
<plugin>
<groupId>org.jboss.redhat-fuse</groupId>
<artifactId>karaf-maven-plugin</artifactId>
<version>${version.org.jboss-redhat-fuse}</version>
<extensions>true</extensions>
<executions>
<execution>
<id>karaf-assembly</id>
<goals>
<goal>assembly</goal>
</goals>
<phase>install</phase>
</execution>
</executions>
<configuration>
...
8.1.1.2. 使用 org.jboss.redhat-fuse/karaf-maven-plugin 进行补丁
使用 org.jboss.redhat-fuse/karaf-maven-plugin 的好处是您可以使用同一版本的 BOM 并声明另一个插件 - patch-maven-plugin :
patch-maven-plugin 声明示例
<build>
<plugins>
<plugin>
<groupId>org.jboss.redhat-fuse</groupId>
<artifactId>patch-maven-plugin</artifactId>
<version>${version.org.jboss-redhat-fuse}</version>
<extensions>true</extensions>
</plugin>
</plugins>
</build>
通过 patch-maven-plugin 扩展,每个构建都会与红帽 Maven 存储库中的可用 CVE 修复进行比较,这意味着每个构建都可以根据 CVE 元数据提供的元数据修补。
8.1.1.3. 修复 patch-maven-plugin → maven-surefire-plugin 不兼容的问题
对插件(patch-maven-plugin 和 karaf-maven-plugin)的修复在与 BOM 版本不同的版本中提供。
对于 Karaf Maven 项目,这意味着设置可以在 fuse 和 plugins 属性中包含不同的版本:
Karaf Maven 项目示例
<properties>
<version.org.jboss-redhat-fuse>7.11.1.fuse-sb2-7_11_1-00017-redhat-00002</version.org.jboss-redhat-fuse>
<version.org.jboss-redhat-fuse-plugins>7.11.1.fuse-sb2-7_11_1-00022-redhat-00002</version.org.jboss-redhat-fuse>
</properties>
...
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.jboss.redhat-fuse</groupId>
<artifactId>fuse-karaf-bom</artifactId>
<version>${version.org.jboss-redhat-fuse}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
...
<build>
<plugins>
<plugin>
<groupId>org.jboss.redhat-fuse</groupId>
<artifactId>patch-maven-plugin</artifactId>
<version>${version.org.jboss-redhat-fuse-plugins}</version>
<extensions>true</extensions>
</plugin>
<plugin>
<groupId>org.jboss.redhat-fuse</groupId>
<artifactId>karaf-maven-plugin</artifactId>
<version>${version.org.jboss-redhat-fuse-plugins}</version>
<extensions>true</extensions>
<executions>
<execution>
<id>karaf-assembly</id>
<goals>
<goal>assembly</goal>
</goals>
<phase>install</phase>
</execution>
</executions>
<configuration>
...
</plugins>
</build>
虽然 BOM 版本没有改变,但 patch-maven-plugin 和 karaf-maven-plugin 需要一个新的 BOM 版本。
8.2. Fuse 7.11 和 7.11.1 中的增强功能
下表列出了 Fuse 7.11 和 Fuse 7.11.1 中的增强功能。
表 8.1. Fuse 7.11.1 增强
| 问题 | 描述 |
|---|---|
| Camel 文件组件的性能改进 |
表 8.2. Fuse 7.11 增强
| 问题 | 描述 |
|---|---|
| 从 karaf ssh 中删除已弃用的算法 | |
| 更灵活的 Fuse-Karaf 功能补丁 | |
| 以 GA 功能的形式从 Fuse 控制台查看 AMQ Broker |
8.3. Fuse 7.11 中的功能请求
下表列出了 Fuse 7.11 中的功能请求。
表 8.3. Fuse 7.11 功能请求
| 问题 | 描述 |
|---|---|
| Atlasmap 中的 CSV 支持 | |
| 添加选项以不安装 AMQ Broker | |
| OCP 和 RHEL FIPS 支持 Fuse [Standalone/FoO] | |
| "创建""latest"" OLM 频道" | |
| [Fuse Console] 添加首选项来默认打开/关闭侧 nav | |
| [Fuse Console] Spring Boot Info 视图 |
8.4. Fuse 7.11 和 7.11.1 中的组件升级
下表列出了 Fuse 7.11.1 中的组件升级。
表 8.4. Fuse 7.11.1 组件升级
| 问题 | 描述 |
|---|---|
| 升级到 BouncyCastle 1.72 | |
| 将 Artemis 插件升级到 AMQ 7.10.1 |
下表列出了 Fuse 7.11 中的组件升级。
表 8.5. Fuse 7.11 组件升级
| 问题 | 描述 |
|---|---|
| 对齐 EAP 7.4.4 | |
| 对齐 Spring Boot 2.5.12 / Spring Framework 5.3.18 / Spring Security 5.5.5 | |
| 升级到 camel-2.23.2.fuse-7_11_0-00012 | |
| 对齐 EAP 7.4.5 | |
| 升级到 Xerces 2.12.2 / SMX 2.12.2_1 | |
| 对齐 ActiveMQ 5.11.0.redhat-630516(6.3.0.R20) | |
| 升级到 felix.fileinstall 3.7.x | |
| Fuse Online 7.11 组件对齐 | |
| 升级到 Undertow 2.2.16 | |
| 与 A-MQ 7.8.4 保持一致 | |
| 升级到 xchange 5.0.11 |
8.5. Fuse 7.11 和 7.11.1 中解决的错误
下表列出了 Fuse 7.11 和 7.11.1 中已解决的错误。
表 8.6. Fuse 7.11.1 解决的错误
| 问题 | 描述 |
|---|---|
| CVE-2022-42889 commons-text: apache-commons-text: variable interpolation RCE [fuse-7] | |
| JSON VR.2.3.17 中的 XML 和 NULL 值中的空标签 | |
| 通过 JSONPath 转换 json 正文会返回一个字符串,其中 json 对象密钥不会用引号括起 | |
| CXF 客户端在没有引号的情况下发送 SOAPAction 标头 | |
| JIRA ENTESB-19690 中的 MBeanInvocationHandler 修复不完整,结束了 UndeclaredThrowableException are thrown. ] | |
| Backport KARAF-7234 fix for MBeanInvocationHandler | |
| mimeMultipart 数据格式没有包括在 marshal/unmarshal 的 XML DSL 中 | |
| [Hawtio] 014 Missing 设置允许来自第三方的 Cookie | |
| [Hawtio] 009 Insecure CORS 策略可能允许恶意脚本窃取用户数据 | |
| [Hawtio] 005 Web 服务器响应缺失 referrer-policy 标头 | |
| [Hawtio] 001 Misconfiguration 可能会公开用户点击。 | |
| java.lang.ClassNotFoundException: com.mongodb.event.ConnectionPoolCreatedEvent | |
| 查看 UPS 报告的 Bootstrap CVE | |
| Micrometer Dependency 问题 wrt Spring Boot 和 Camel | |
| 来自 RabbitMQ Connection Factory 的自动恢复不会从每个考虑中恢复 | |
| fabric8-camel:validate failed download the right camel version | |
| 从 wsdl 创建 api 连接器会抛出 Missing 属性 portName | |
| 在 split ()中,camel-jpa producer 创建新的 EntityManager,且不会从当前事务中获取 | |
| Camel-jpa producer 不会在事务中重复使用现有 EntityManager,并创建自己的实体 | |
| Operator 无法通过配置了路由主机名选项创建 Apicurito CR | |
| com.jcraft.jsch 模块缺少 bouncycastle 依赖项 | |
| CVE-2022-31129 moment:低效的解析算法,从而导致 DoS [fuse-7] | |
| 无法使用 spring-boot-starter-webflux 构建 Fuse 7 项目 | |
| "fuse-pax-transx-tm-narayana"捆绑包缺少 "javax.security.cert" 导入软件包 | |
| CVE-2022-33980 commons-configuration2: apache-commons-configuration: Apache Commons Configuration insecure interpolation defaults [fuse-7] | |
| 对于 springboot CXF 部署,"server.shutdown=graceful"无法正常工作 | |
| CVE-2021-31684 json-smart: JSONParserByteArray function [fuse-7] | |
| 通过 API Designer 导入 json 文件时,多字节字符 garbled | |
| 在 karaf 上带有嵌入式 undertow 服务器的 cxf 访问日志支持 | |
| CVE-2022-2053 undertow: Large AJP 请求可能会导致 DoS [fuse-7] | |
| 部署 .kar 文件时出错 | |
| Camel-salesforce throwing java.lang.IllegalArgumentException: Buffering capacity 4194304 exceeded | |
| 无法在 Operator 部署的 Fuse Console 中使用自定义路由 | |
| CVE-2022-24785 Moment.js: Path traversal in time.locale [fuse-7] |
表 8.7. Fuse 7.11 解决问题的错误
| 问题 | 描述 |
|---|---|
| Camel-sftp:使用 ls 检查远程目录是否存在非常慢 | |
| " "Fuse console on OCP>_<-brokerbroker 管理功能不可用 | |
| Fuse Online 无法在 OpenShift 4.11 上安装(每日构建) | |
| 以 GA 功能的形式从 Fuse 控制台查看 AMQ Broker | |
| Camel Kafka 组件无法加载 Kerberos LoginModule | |
| "统计级别""RoutesOnly""包括处理器指标" | |
| 当通过 OpenShift 路由连接到 AMQ Broker 时,AMQP 连接故障切换无法正常工作 | |
| Fuse 7 中的 CVE-2022-22968 | |
| 无法安装 6 Karaf 功能 | |
| 在使用外部事务上下文时,尝试获取/读取实体失败 | |
| EntityManager 不与父上下文共享。 | |
| Camel-jms - InOut with reply-to-type shared - 竞争条件 | |
| CVE-2020-36518 jackson-databind:通过大量嵌套对象的深度拒绝服务 [fuse-7] | |
| 增强器会导致连接泄漏 | |
| 从 Operator Hub 安装的 Fuse 控制台 Operator 不定义资源请求或限值 | |
| CVE-2022-23913 artemis-commons: Apache ActiveMQ Artemis DoS [fuse-7] | |
| Camel-openapi-java - 架构定义未正确生成 | |
| "ROUTE_HOSTNAME 不适用于 Operator""Red Hat Integration - API Designer"""。 | |
| Fuse Online Installation Fails on OpenShift 4.6 and Succeeds on OpenShift 4.8 with same Hardware and resources | |
| 左/右/后端密钥无法通过 SSH 在 Windows 上的 Fuse/karaf shell 中工作 | |
| CVE-2021-22060 springframework:Spring Framework 中的附加日志注入 (与 CVE-2021-22096)后面)[fuse-7] | |
| 7.x 中的 Log4j2 在 6.x 中比 Log4j 慢 | |
| CVE-2022-21724 jdbc-postgresql: Unchecked Class Instantiation (提供 Plugin Classes [fuse-7] | |
| 与 ref 端点相关的问题 | |
| CVE-2021-22569 protobuf-java: potential DoS in resolve procedure for binary data [fuse-7] | |
| CVE-2022-23181 tomcat: 本地权限升级漏洞 [fuse-7] | |
| 当与 Windows 上的 fuse 中的属性搭配使用时,ToCharArray 会失败 | |
| 当 jmsMessageType=Stream 时输入 Streeam not closed | |
| CXF 中的子优化锁定 | |
| CVE-2021-42550 logback-classic: logback: remote code execution via JNDI call from from from its configuration file [fuse-7] | |
| Fuse 7 BlueprintPropertiesParser ConcurrentModificationException | |
| 使用ries-blueprint-spring 功能进行 Spring 安全实施 | |
| Camel-cxf mtomEnabled 属性被错误覆盖 | |
| EAP 7 上的 Fuse 7: ClassNotFoundException: org.springframework.web.context.support.WebApplicationContextUtils | |
| CVE-2021-22096 springframework:恶意输入会导致插入其他日志条目 [fuse-7] | |
| camel-core 2.23.2.fuse-7_10_0-00020-redhat-00001 具有 jaxb 2.3.0 依赖项 | |
| 问题使用 pax-jdbc-db2 中的属性解析 DB2 的 JDBC URL | |
| [CAMEL-14372] Validator 组件使用 java.lang.IllegalArgumentException: protocol = http host = null | |
| [7.x] 当一个字段在 SAP Document 中为空/null 时记录 NPE | |
| 如果流为 off 和 maxRetransmits > 1,则 CXF 制作者无法处理超过 16KB 的有效负载。 | |
| "[7.x] pax-web-jetty 库错误地公开 ""javax.servlet.ServletException""" | |
| atlas Map - 自定义转换不会在下拉菜单中显示 | |
| atlas Map - 与 XSD 中不同内联类型的相同名称元素被错误地缓存 | |
| LC_ALL 无法在 Fuse Image 7.9.0 中设置 | |
| "Fuse + AtlasMap: Unrecognized 字段 ""dataSourceType"" " | |
| [HHH-14229] javax.persistence.ForeignKey doesn not respect ConstraintMode.NO_CONSTRAINT | |
| 当 jolokia caCert 文件中存在多个证书颁发机构时,Fuse 控制台客户端 auth 会失败 | |
| [Hawtio] Logout 按钮会消失 | |
| "在 Camel MLLP 组件 ENTESB-17673 [Hawtio] Latest chrome 版本上与 RHEL7 和 RHEL8 不同 | |
| CVE-2021-42340 tomcat: OutOfMemoryError由 HTTP 升级连接泄漏导致 DoS [fuse-7] | |
| 读取超时不适用于 camel undertow producer |