Red Hat Fuse 7.11 发行注记

Red Hat Fuse 7.11

红帽 Fuse 的新增功能

Red Hat Fuse Documentation Team

摘要

这些内容概述 Red Hat Fuse 发行版本间的变化。

使开源包含更多

红帽致力于替换我们的代码、文档和 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 版本。

另请参阅 第 8.5 节 “Fuse 7.11 和 7.11.1 中解决的错误”

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 连接器包括以下字段:

  • 集成标签

    保存集成时,您可以应用一个或多个标签。标签(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。这个选项还启用示例 Todo app、示例 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。

  1. 在 OpenShift Container Platform Web 控制台的 Administrator 视角中,进入到 Operators > Installed Operators
  2. Red Hat Integration Fuse Online 7.10.2 Operator。
  3. Subscription 标签页。
  4. 验证 Update approval 是否已设置为 Manual

    • 如果 Update approval 设为 Manual,则跳至下一步。
    • 如果 Update approval 设置为 Automatic

      1. 单击 Automatic
      2. Change Update Approval Strategy 对话框中,选择 Manual 并点 Save
  5. Update channel 下,点 7.10.2
  6. 对于 Change subscription 更新频道,请选择 7.11.x

    注: 最新的candidatestable 频道是技术预览功能。

  7. Upgrade status 下,单击 Upgrade available
  8. Preview InstallPlan,然后点 Approve
  9. 验证 Operator 是否已完成到 Fuse Online 7.11.0 的升级:

    1. 进入到 Operators > Installed Operators 页面,然后点 Red Hat Integration Fuse OnlineOperator Details 页面将打开。
    2. 选择 Syndesis 选项卡。Fuse Online 实例的状态(默认名称为 app)最初显示 Installed (以指示安装了 Fuse Online 7.11.0)。然后,它将分为几个阶段(安装启动Installed)。当它再次到达 Installed 阶段时,升级到 7.11.0 已完成。
  10. 返回到 Operators &gt ; Installed Operators 页面,然后点 Red Hat Integration Fuse Online operator 的 Upgrade available
  11. Preview InstallPlan,然后点 Approve
  12. 验证 Operator 是否已完成到 Fuse Online 7.11.x 的升级:

    1. 导航到 Networking > Routes 并点击 syndesis 的位置链接来打开 Fuse Online web 控制台。
    2. 在 Fuse Online 控制台右上角,单击 ? 图标,然后选择 About
    3. 验证 About 页面是否在版本号中包含 7_11_x

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}}}}'

流程

  1. 如果存在 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
  2. 如果存在 openshift-monitoring 配置:

    1. 检查现有的 openshift-monitoring 配置,以确定 用户工作负载监控 选项是否被设置为 true

      oc get -n openshift-monitoring cm/cluster-monitoring-config -ojsonpath='{.data.config\.yaml}'

      如果结果为 enableUserWorkload: true,则 用户工作负载监控 选项被设置为 true。跳至步骤 3。

      如果结果显示任何其他配置,请继续下一步,通过编辑 ConfigMap 来启用用户工作负载的监控。

    2. 在编辑器中打开 ConfigMap 文件,例如:

      oc -n openshift-monitoring edit cm/cluster-monitoring-config
    3. enableUserWorkload 设置为 true。例如:

      apiVersion: v1
      kind: ConfigMap
      metadata:
        name: cluster-monitoring-config
        namespace: openshift-monitoring
      data:
        config.yaml:
         enableUserWorkload: true
    4. 保存 ConfigMap 文件。
  3. 使用以下命令,观察 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
  4. 验证 Prometheus 中是否启用了 Fuse Online 警报规则:

    1. 访问内部 prometheus 实例

      oc port-forward -n openshift-user-workload-monitoring pod/prometheus-user-workload-0 9090
    2. 打开浏览器,到 localhost:9090
    3. 选择 Status> Targets。您应看到 三个整合 端点。
    4. CTRL-C 终止 端口转发 进程。
  5. 从 OperatorHub,将 Grafana Operator 4.1.0 安装到您选择的命名空间,如 grafana- Middleware 命名空间。
  6. 添加集群角色和集群角色绑定,以允许 grafana-operator 列出节点和命名空间:

    1. grafana-operator 网站下载集群角色 YAML 文件:

      curl https://raw.githubusercontent.com/grafana-operator/grafana-operator/master/deploy/cluster_roles/cluster_role_grafana_operator.yaml > tmp_role.yaml
    2. grafana-operator 添加集群权限以读取其他命名空间和节点:

      cat <<EOF >> tmp_role.yaml
        - apiGroups:
            - ""
          resources:
            - namespaces
            - nodes
          verbs:
            - get
            - list
            - watch
      EOF
      oc 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
  7. 启用 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"}]}}}'
  8. 检查 grafana pod 是否已重新创建:

    oc -n grafana-middleware get pods -w
  9. 另外,还可查看 grafana-operator 日志:

    oc -n grafana-middleware logs -f `oc -n grafana-middleware get pods -oname|grep grafana-operator-controller-manager` -c manager
  10. 添加 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
  11. 允许 grafana-operator 读取监控信息:

    oc -n grafana-middleware adm policy add-cluster-role-to-user cluster-monitoring-view -z grafana-serviceaccount
  12. 添加 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
  13. 查看 grafana 服务器日志:

    oc logs -f `oc get pods -l app=grafana -oname`
  14. 访问 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 字段。
  • 映射数据字段的条件表达式

    在数据映射器中,您可以指定一个条件表达式并将其应用到数据映射中。例如,条件表达式可以指定 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平台支持的构架

fuse7/fuse-java-openshift-rhel8

Spring Boot

AMD64 和 Intel 64(x86_64)

fuse7/fuse-java-openshift-jdk11-rhel8

Spring Boot

AMD64 和 Intel 64(x86_64)

fuse7/fuse-java-openshift-openj9-11-rhel8

Spring Boot

IBM Z 和 LinuxONE(s390x)
IBM Power Systems(ppc64le)

fuse7/fuse-karaf-openshift-rhel8

Apache Karaf

AMD64 和 Intel 64(x86_64)

fuse7/fuse-karaf-openshift-jdk11-rhel8

Apache Karaf

AMD64 和 Intel 64(x86_64)

fuse7/fuse-eap-openshift-jdk8-rhel7

Red Hat JBoss Enterprise Application Platform

AMD64 和 Intel 64(x86_64)

fuse7/fuse-eap-openshift-jdk11-rhel8

Red Hat JBoss Enterprise Application Platform

AMD64 和 Intel 64(x86_64)

fuse7/fuse-console-rhel8

Fuse 控制台

AMD64 和 Intel 64(x86_64)
IBM Z 和 LinuxONE(s390x)
IBM Power Systems(ppc64le)

fuse7/fuse-console—​rhel8-operator

Fuse 控制台操作器

AMD64 和 Intel 64(x86_64)
IBM Z 和 LinuxONE(s390x)
IBM Power Systems(ppc64le)

fuse7/fuse-apicurito-generator-rhel8

Apicurito REST 应用程序生成器

AMD64 和 Intel 64(x86_64)

fuse7/fuse-apicurito-rhel8

Apicurito REST API 编辑器

AMD64 和 Intel 64(x86_64)

fuse7/fuse-apicurito-rhel8-operator

API Designer Operator

AMD64 和 Intel 64(x86_64)

3.3. OpenShift 中 Fuse 7.11 中的新功能

OpenShift 上的 Fuse 在版本 7.11 中提供以下新功能:

  • Fuse 控制台性能调优(仅限 OpenShift 4.x)

    您可以通过设置任何 clientBodyBufferSizeproxyBufferssubrequestOutputBufferSize 环境变量来调整 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-jpa Quickstart 已被删除
由于依赖项存在问题,eap-camel-jpa Quickstart 已从 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 &gt ; 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 &gt ; Go to Symbol。
  • 键入时,编辑器为直接、 直接 虚拟机、VM SEDA 组件所引用 ID 提供代码完成。
  • 您可以在所有打开的 Camel 文件中查找 直接和直接虚拟机 组件的引用。

对于属性:

  • Camel 组件属性的完成
  • 诊断

要访问 Apache Camel 功能的语言支持,您可以添加一个或多个扩展。

Apache Camel 扩展包 会安装以下 VS Code 扩展:

另外,您还可以单独安装扩展。

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

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/artifactIdFuse 7.11.1 的版本

Spring Boot 2

org.jboss.redhat-fuse/fuse-springboot-bom

7.11.1.fuse-sb2-7_11_1-00017-redhat-00002

org.jboss.redhat-fuse/spring-boot-maven-plugin

7.11.1.fuse-sb2-7_11_1-00017-redhat-00002

Apache Karaf

org.jboss.redhat-fuse/fuse-karaf-bom

7.11.1.fuse-sb2-7_11_1-00017-redhat-00002

org.jboss.redhat-fuse/karaf-maven-plugin

7.11.1.fuse-sb2-7_11_1-00017-redhat-00002

JBoss EAP

org.jboss.redhat-fuse/fuse-eap-bom

7.11.1.fuse-sb2-7_11_1-00017-redhat-00002

有关使用 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/artifactIdFuse 7.11 的版本

Spring Boot 2

org.jboss.redhat-fuse/fuse-springboot-bom

7.11.0.fuse-sb2-7_11_0-00028-redhat-00001

org.jboss.redhat-fuse/spring-boot-maven-plugin

7.11.0.fuse-sb2-7_11_0-00028-redhat-00001

Apache Karaf

org.jboss.redhat-fuse/fuse-karaf-bom

7.11.0.fuse-sb2-7_11_0-00028-redhat-00001

org.jboss.redhat-fuse/karaf-maven-plugin

7.11.0.fuse-sb2-7_11_0-00028-redhat-00001

JBoss EAP

org.jboss.redhat-fuse/fuse-eap-bom

7.11.0.fuse-sb2-7_11_0-00028-redhat-00001

有关使用 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-ftpcamel-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:install Karaf 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.bat on 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 中取代了以下功能:

geronimo 事务管理器已在 7.0 中替代
在 Fuse 7.0 中,apache 容器中的 Geronimo 事务管理器已被 Narayana 替代。
Jetty 容器已被替换为
在 Fuse 7.0 中,Jetty 容器已被 Undertow 取代。最初,此更改仅适用于 Jetty 容器的内部使用(例如,在 Karaf 容器中)。在以后的版本中可能会删除其他 Jetty 组件。

第 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 依赖于 BundleBBundleCb,而 BundleB 则依赖 BundleCa BundleC aBundleCb 应该是相同的捆绑包,如果导出了相同的软件包,但由于版本(范围)限制,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.9Fuse 7.10在 Fuse 7.10 中已弃用?

aes128-ctr

aes128-ctr

 
 

aes192-ctr

 
 

aes256-ctr

 
 

aes128-gcm@openssh.com

 
 

aes256-gcm@openssh.com

 

arcfour128

arcfour128

aes128-cbc

aes128-cbc

 
 

aes192-cbc

 
 

aes256-cbc

 

3des-cbc

3des-cbc

blowfish-cbc

blowfish-cbc

在 Fuse 7.10 中,默认密钥交换算法已更改,如下所示。

Fuse 7.9Fuse 7.10在 7.10 中已弃用?

diffie-hellman-group-exchange-sha256

diffie-hellman-group-exchange-sha256

 

ecdh-sha2-nistp521

ecdh-sha2-nistp521

 

ecdh-sha2-nistp384

ecdh-sha2-nistp384

 

ecdh-sha2-nistp256

ecdh-sha2-nistp256

 
 

diffie-hellman-group18-sha512

 
 

diffie-hellman-group17-sha512

 
 

diffie-hellman-group16-sha512

 
 

diffie-hellman-group15-sha512

 
 

diffie-hellman-group14-sha256

 

diffie-hellman-group-exchange-sha1

diffie-hellman-group-exchange-sha1

diffie-hellman-group1-sha1

diffie-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 命名空间中,新的 syndesis-jaeger pod>_<-jaeger pod>_<-jaeger pod horizontallys and new syndesis-jaeger Pod 进入 CrashLoopBackOff 状态后,新的 syndesis-jaeger pod 便是 CrashLoopBackOff 状态。原始 Fuse 7.7 Online 实例不受影响,崩溃的 syndesis-jaeger pod 可以安全忽略。
已部署集成 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 安装(无效证书错误)无法正常工作。要临时解决这个问题:

  1. 打开 htps://apicurito-service-generator-apicurito.apps.cluster-name.openshift.com的新标签页

    (将 cluster-name.openshift.com 替换为您的集群名称。)

  2. 接受证书。
  3. 切换到应用程序,然后再次点击 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-security OSGi 功能,否则此功能将关闭 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 来解码 relativePathrequestPath,则 requestURI 参数仍然编码。

分配方法(转发,包括、sync 和 error)为 requestPathrelativeURL 分配路径,这会导致分配给路径,如 /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} 中的增强

问题描述

ENTESB-18335

ENTESB-20693

对 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-pluginorg.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-pluginmaven-surefire-plugin 不兼容的问题

对插件(patch-maven-pluginkaraf-maven-plugin)的修复在与 BOM 版本不同的版本中提供。

对于 Karaf Maven 项目,这意味着设置可以在 fuseplugins 属性中包含不同的版本:

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-pluginkaraf-maven-plugin 需要一个新的 BOM 版本。

8.2. Fuse 7.11 和 7.11.1 中的增强功能

下表列出了 Fuse 7.11 和 Fuse 7.11.1 中的增强功能。

表 8.1. Fuse 7.11.1 增强

问题描述

ENTESB-18702

Camel 文件组件的性能改进

表 8.2. Fuse 7.11 增强

问题描述

ENTESB-17528

从 karaf ssh 中删除已弃用的算法

ENTESB-19071

更灵活的 Fuse-Karaf 功能补丁

ENTESB-19169

以 GA 功能的形式从 Fuse 控制台查看 AMQ Broker

8.3. Fuse 7.11 中的功能请求

下表列出了 Fuse 7.11 中的功能请求。

表 8.3. Fuse 7.11 功能请求

问题描述

ENTESB-13746

Atlasmap 中的 CSV 支持

ENTESB-16465

添加选项以不安装 AMQ Broker

ENTESB-16993

OCP 和 RHEL FIPS 支持 Fuse [Standalone/FoO]

ENTESB-18024

"创建""latest"" OLM 频道"

ENTESB-18633

[Fuse Console] 添加首选项来默认打开/关闭侧 nav

ENTESB-18785

[Fuse Console] Spring Boot Info 视图

8.4. Fuse 7.11 和 7.11.1 中的组件升级

下表列出了 Fuse 7.11.1 中的组件升级。

表 8.4. Fuse 7.11.1 组件升级

问题描述

ENTESB-19997

升级到 BouncyCastle 1.72

ENTESB-19967

将 Artemis 插件升级到 AMQ 7.10.1

下表列出了 Fuse 7.11 中的组件升级。

表 8.5. Fuse 7.11 组件升级

问题描述

ENTESB-18673

对齐 EAP 7.4.4

ENTESB-18583

对齐 Spring Boot 2.5.12 / Spring Framework 5.3.18 / Spring Security 5.5.5

ENTESB-18638

升级到 camel-2.23.2.fuse-7_11_0-00012

ENTESB-18997

对齐 EAP 7.4.5

ENTESB-18592

升级到 Xerces 2.12.2 / SMX 2.12.2_1

ENTESB-18591

对齐 ActiveMQ 5.11.0.redhat-630516(6.3.0.R20)

ENTESB-17724

升级到 felix.fileinstall 3.7.x

ENTESB-18735

Fuse Online 7.11 组件对齐

ENTESB-17238

升级到 Undertow 2.2.16

ENTESB-18590

与 A-MQ 7.8.4 保持一致

ENTESB-17577

升级到 xchange 5.0.11

8.5. Fuse 7.11 和 7.11.1 中解决的错误

下表列出了 Fuse 7.11 和 7.11.1 中已解决的错误。

表 8.6. Fuse 7.11.1 解决的错误

问题描述

ENTESB-19998

CVE-2022-42889 commons-text: apache-commons-text: variable interpolation RCE [fuse-7]

ENTESB-19957

JSON VR.2.3.17 中的 XML 和 NULL 值中的空标签

ENTESB-19758

通过 JSONPath 转换 json 正文会返回一个字符串,其中 json 对象密钥不会用引号括起

ENTESB-19725

CXF 客户端在没有引号的情况下发送 SOAPAction 标头

ENTESB-19721

JIRA ENTESB-19690 中的 MBeanInvocationHandler 修复不完整,结束了 UndeclaredThrowableException are thrown. ]

ENTESB-19690

Backport KARAF-7234 fix for MBeanInvocationHandler

ENTESB-19687

mimeMultipart 数据格式没有包括在 marshal/unmarshal 的 XML DSL 中

ENTESB-19676

[Hawtio] 014 Missing 设置允许来自第三方的 Cookie

ENTESB-19675

[Hawtio] 009 Insecure CORS 策略可能允许恶意脚本窃取用户数据

ENTESB-19674

[Hawtio] 005 Web 服务器响应缺失 referrer-policy 标头

ENTESB-19673

[Hawtio] 001 Misconfiguration 可能会公开用户点击。

ENTESB-19665

java.lang.ClassNotFoundException: com.mongodb.event.ConnectionPoolCreatedEvent

ENTESB-19635

查看 UPS 报告的 Bootstrap CVE

ENTESB-19627

Micrometer Dependency 问题 wrt Spring Boot 和 Camel

ENTESB-19626

来自 RabbitMQ Connection Factory 的自动恢复不会从每个考虑中恢复

ENTESB-19625

fabric8-camel:validate failed download the right camel version

ENTESB-19624

从 wsdl 创建 api 连接器会抛出 Missing 属性 portName

ENTESB-19618

在 split ()中,camel-jpa producer 创建新的 EntityManager,且不会从当前事务中获取

ENTESB-19617

Camel-jpa producer 不会在事务中重复使用现有 EntityManager,并创建自己的实体

ENTESB-19612

Operator 无法通过配置了路由主机名选项创建 Apicurito CR

ENTESB-19586

com.jcraft.jsch 模块缺少 bouncycastle 依赖项

ENTESB-19518

CVE-2022-31129 moment:低效的解析算法,从而导致 DoS [fuse-7]

ENTESB-19516

无法使用 spring-boot-starter-webflux 构建 Fuse 7 项目

ENTESB-19504

"fuse-pax-transx-tm-narayana"捆绑包缺少 "javax.security.cert" 导入软件包

ENTESB-19489

CVE-2022-33980 commons-configuration2: apache-commons-configuration: Apache Commons Configuration insecure interpolation defaults [fuse-7]

ENTESB-19429

对于 springboot CXF 部署,"server.shutdown=graceful"无法正常工作

ENTESB-19409

CVE-2021-31684 json-smart: JSONParserByteArray function [fuse-7]

ENTESB-19386

通过 API Designer 导入 json 文件时,多字节字符 garbled

ENTESB-19361

在 karaf 上带有嵌入式 undertow 服务器的 cxf 访问日志支持

ENTESB-19341

CVE-2022-2053 undertow: Large AJP 请求可能会导致 DoS [fuse-7]

ENTESB-19282

部署 .kar 文件时出错

ENTESB-19204

Camel-salesforce throwing java.lang.IllegalArgumentException: Buffering capacity 4194304 exceeded

ENTESB-19116

无法在 Operator 部署的 Fuse Console 中使用自定义路由

ENTESB-18843

CVE-2022-24785 Moment.js: Path traversal in time.locale [fuse-7]

表 8.7. Fuse 7.11 解决问题的错误

问题描述

ENTESB-19362

Camel-sftp:使用 ls 检查远程目录是否存在非常慢

ENTESB-19356

" "Fuse console on OCP>_<-brokerbroker 管理功能不可用

ENTESB-19343

Fuse Online 无法在 OpenShift 4.11 上安装(每日构建)

ENTESB-19169

以 GA 功能的形式从 Fuse 控制台查看 AMQ Broker

ENTESB-18994

Camel Kafka 组件无法加载 Kerberos LoginModule

ENTESB-18973

"统计级别""RoutesOnly""包括处理器指标"

ENTESB-18964

当通过 OpenShift 路由连接到 AMQ Broker 时,AMQP 连接故障切换无法正常工作

ENTESB-18960

Fuse 7 中的 CVE-2022-22968

ENTESB-18913

无法安装 6 Karaf 功能

ENTESB-18849

在使用外部事务上下文时,尝试获取/读取实体失败

ENTESB-18848

EntityManager 不与父上下文共享。

ENTESB-18847

Camel-jms - InOut with reply-to-type shared - 竞争条件

ENTESB-18822

CVE-2020-36518 jackson-databind:通过大量嵌套对象的深度拒绝服务 [fuse-7]

ENTESB-18694

增强器会导致连接泄漏

ENTESB-18692

从 Operator Hub 安装的 Fuse 控制台 Operator 不定义资源请求或限值

ENTESB-18682

CVE-2022-23913 artemis-commons: Apache ActiveMQ Artemis DoS [fuse-7]

ENTESB-18681

Camel-openapi-java - 架构定义未正确生成

ENTESB-18672

"ROUTE_HOSTNAME 不适用于 Operator""Red Hat Integration - API Designer"""。

ENTESB-18608

Fuse Online Installation Fails on OpenShift 4.6 and Succeeds on OpenShift 4.8 with same Hardware and resources

ENTESB-18558

左/右/后端密钥无法通过 SSH 在 Windows 上的 Fuse/karaf shell 中工作

ENTESB-18534

CVE-2021-22060 springframework:Spring Framework 中的附加日志注入 (与 CVE-2021-22096)后面)[fuse-7]

ENTESB-18498

7.x 中的 Log4j2 在 6.x 中比 Log4j 慢

ENTESB-18493

CVE-2022-21724 jdbc-postgresql: Unchecked Class Instantiation (提供 Plugin Classes [fuse-7]

ENTESB-18471

与 ref 端点相关的问题

ENTESB-18439

CVE-2021-22569 protobuf-java: potential DoS in resolve procedure for binary data [fuse-7]

ENTESB-18428

CVE-2022-23181 tomcat: 本地权限升级漏洞 [fuse-7]

ENTESB-18414

当与 Windows 上的 fuse 中的属性搭配使用时,ToCharArray 会失败

ENTESB-18380

当 jmsMessageType=Stream 时输入 Streeam not closed

ENTESB-18317

CXF 中的子优化锁定

ENTESB-18287

CVE-2021-42550 logback-classic: logback: remote code execution via JNDI call from from from its configuration file [fuse-7]

ENTESB-18273

Fuse 7 BlueprintPropertiesParser ConcurrentModificationException

ENTESB-18158

使用ries-blueprint-spring 功能进行 Spring 安全实施

ENTESB-18094

Camel-cxf mtomEnabled 属性被错误覆盖

ENTESB-18073

EAP 7 上的 Fuse 7: ClassNotFoundException: org.springframework.web.context.support.WebApplicationContextUtils

ENTESB-18058

CVE-2021-22096 springframework:恶意输入会导致插入其他日志条目 [fuse-7]

ENTESB-18057

camel-core 2.23.2.fuse-7_10_0-00020-redhat-00001 具有 jaxb 2.3.0 依赖项

ENTESB-18056

问题使用 pax-jdbc-db2 中的属性解析 DB2 的 JDBC URL

ENTESB-18048

[CAMEL-14372] Validator 组件使用 java.lang.IllegalArgumentException: protocol = http host = null

ENTESB-18031

[7.x] 当一个字段在 SAP Document 中为空/null 时记录 NPE

ENTESB-17979

如果流为 off 和 maxRetransmits > 1,则 CXF 制作者无法处理超过 16KB 的有效负载。

ENTESB-17914

"[7.x] pax-web-jetty 库错误地公开 ""javax.servlet.ServletException"""

ENTESB-17912

atlas Map - 自定义转换不会在下拉菜单中显示

ENTESB-17911

atlas Map - 与 XSD 中不同内联类型的相同名称元素被错误地缓存

ENTESB-17883

LC_ALL 无法在 Fuse Image 7.9.0 中设置

ENTESB-17839

"Fuse + AtlasMap: Unrecognized 字段 ""dataSourceType"" "

ENTESB-17838

[HHH-14229] javax.persistence.ForeignKey doesn not respect ConstraintMode.NO_CONSTRAINT

ENTESB-17779

当 jolokia caCert 文件中存在多个证书颁发机构时,Fuse 控制台客户端 auth 会失败

ENTESB-17705

[Hawtio] Logout 按钮会消失

ENTESB-17702

"在 Camel MLLP 组件 ENTESB-17673 [Hawtio] Latest chrome 版本上与 RHEL7 和 RHEL8 不同

ENTESB-17617

CVE-2021-42340 tomcat: OutOfMemoryError由 HTTP 升级连接泄漏导致 DoS [fuse-7]

ENTESB-16915

读取超时不适用于 camel undertow producer

法律通告

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.