Red Hat JBoss Enterprise Application Platform 8.0 发行注记

Red Hat JBoss Enterprise Application Platform 8.0

本发行注记包含与 Red Hat JBoss Enterprise Application Platform release 8.0 相关的重要信息

Red Hat Customer Content Services

摘要

本发行注记包含与 Red Hat JBoss Enterprise Application Platform release 8.0 相关的重要信息。

前言

本发行注记包含与 Red Hat JBoss Enterprise Application Platform 8.0 相关的重要信息。

提供有关 JBoss EAP 文档的反馈

要报告错误或改进文档,请登录到 Red Hat JIRA 帐户并提交问题。如果您没有 Red Hat Jira 帐户,则会提示您创建一个帐户。

流程

  1. 单击以下链接 以创建 ticket
  2. Summary 中输入问题的简短描述。
  3. Description 中提供问题或功能增强的详细描述。包括一个指向文档中问题的 URL。
  4. Submit 创建问题,并将问题路由到适当的文档团队。

使开源包含更多

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。我们从这四个术语开始:master、slave、黑名单和白名单。由于这一努力的精力,这些更改将在即将发布的版本中逐渐实施。有关让我们的语言更加包含的更多详情,请参阅我们的CTO Chris Wright 信息

第 1 章 如何阅读 Red Hat JBoss Enterprise Application Platform 8.0 文档

我们正开始对 Red Hat JBoss Enterprise Application Platform 8.0 文档进行现代化。我们正努力创建以解决方案为中心的文档。

JBoss EAP 8.0 文档包含特定于 JBoss EAP 8.0 版本的内容,包括 JBoss EAP 8.0 中发现的新和增强功能。JBoss EAP 7.4 文档中可以访问之前版本中的功能,它们仍然在 JBoss EAP 8.0 中受到支持。您可以在 Red Hat JBoss Enterprise Application Platform 7.4 产品文档中访问文档。

以下是使用 JBoss EAP 8.0 文档的建议方法:

  1. 阅读 JBoss EAP 8.0 发行注记,了解新的、增强、不支持和删除的功能。
  2. 阅读其他 JBoss EAP 8.0 文档集以了解新功能的详细信息。
  3. 有关如何将应用程序迁移到 JBoss EAP 8.0 的详细信息,请参阅 JBoss EAP 8.0 迁移指南。
  4. 如果您需要 JBoss EAP 8.0 中未增强的以前版本支持的功能的信息,请参阅 Red Hat JBoss Enterprise Application Platform 7.4 产品文档中的 JBoss EAP 7.4 文档。例如,JBoss EAP 7.4 文档中提供了开发和配置指南。

第 2 章 支持的配置

有关 Java 虚拟机(JVM)和 JBoss EAP 8.0 支持的和测试配置的更多信息,包括常用的操作系统、数据库和 JMS 代理,请参阅红帽客户门户网站上的 Red Hat JBoss Enterprise Application Platform 8.0 支持的配置 知识库文章。

有关包含模块、支持的标准和 Red Hat JBoss Enterprise Application Platform 组件详情的更多信息,请参阅以下支持文档:

OpenShift 镜像

Intel、IBM 系统 Z & P 和 ARM 架构上的 OpenJDK 17 / RHEL 8 支持构建程序和运行时镜像。

Red Hat build of Keycloak SAML 适配器支持

现在,您可以使用 Keycloak SAML 适配器 Galleon 功能软件包安装红帽构建的 Keycloak SAML 适配器。有关红帽构建的 Keycloak 的详情,请查看 红帽构建的 Keycloak 产品页

MariaDB 驱动程序日志记录依赖项

在 JBoss EAP 8.0 中,MariaDB 驱动程序包含对 org.slf4j 模块的依赖项,以改进日志记录功能。这可防止在 slf4j 类不可用时可能的错误,并确保正确处理日志消息。在部署 MariaDB Driver 模块时,您必须确保 slf4j 依赖项可用于利用此增强。如需更多信息,请参阅 如何将 MariaDB 驱动程序 3.0+ 配置为 EAP 7 / 8 中的 JBoss 模块

JBoss EAP 8.0 Operator

JBoss EAP 8.0 现在支持 EAP 操作器。现在,您可以使用 JBoss EAP 操作器部署 JBoss EAP 8.0 应用程序。如需更多信息,请参阅 JBoss EAP Operator 支持政策

第 3 章 新功能及功能增强

JBoss EAP 8.0 引入了以下新功能和增强:

3.1. Jakarta EE 10 支持

JBoss EAP 8 支持 Jakarta EE 10,并实施 Jakarta EE 10 核心配置文件、Web 配置文件和完整平台标准,包括:

  • jakarta Activation 2.1
  • Jakarta Annotations 2.1
  • Jakarta Authentication 3.0
  • Jakarta Authorization 2.1
  • Jakarta Batch 2.1
  • Jakarta Bean Validation 3.0
  • jakarta Concurrency 3.0
  • Jakarta Connectors 2.1
  • Jakarta 上下文和依赖注入 4.0
  • Jakarta Debugging Support for Other Languages 2.0
  • Jakarta Dependency Injection 2.0
  • Jakarta Enterprise Beans 4.0
  • Jakarta Enterprise Web Services 2.0
  • Jakarta Expression Language 5.0
  • Jakarta Interceptors 2.1
  • Jakarta JSON Binding 3.0
  • Jakarta JSON Processing 2.1
  • Jakarta Mail 2.1
  • Jakarta Messaging 3.1
  • Jakarta Persistence 3.1
  • Jakarta RESTful Web Services 3.1
  • jakarta Security 3.0
  • Jakarta Server Faces 4.0
  • Jakarta Server Pages 3.1
  • Jakarta Servlet 6.0
  • Jakarta SOAP with Attachments 1.3
  • Jakarta Standard Tag Library 3.0
  • Jakarta Transactions 2.0
  • Jakarta WebSocket 2.1
  • Jakarta XML Binding 4.0
  • Jakarta XML Web Services 4.0

与 Jakarta EE 8 相比,Jakarta EE 10 有很多变化。如需更多信息,请参阅 如何将 JBoss EAP 应用程序从 Jakarta EE 8 迁移到 Jakarta EE 10

软件包命名空间更改

用于所有 EE API 的软件包已从 javax 改为 jakarta。这遵循 Java EE 迁移到 Eclipse Foundation 并建立 Jakarta EE。

注意

这个更改不会影响作为 Java SE 一部分的 javax 软件包。

其他资源

3.2. Red Hat Insights Java 客户端

JBoss EAP 8.0 版本包含 Red Hat Insights Java 客户端。只有在 Red Hat Enterprise Linux (RHEL)上安装了 JBoss EAP,并且 RHEL 系统已安装、配置并注册了 Red Hat Insights 客户端时,Red Hat Insights Java 客户端才会为 JBoss EAP 启用。如需更多信息,请参阅 Red Hat Insights 的客户端配置指南

Red Hat Insights 仪表板 for Runtimes 将在以后的 Red Hat Hybrid Cloud Console 上提供。与 Red Hat Hybrid Cloud Console 上可用的 RHEL 仪表板 类似,Runtimes 仪表板将显示运行时安装的清单、CVE 详情并帮助您选择 JVM 选项。

您可以通过将环境变量 RHT_INSIGHTS_JAVA_OPT_OUT 设置为 true 来选择不使用 Red Hat Insights 客户端。如需更多信息,请参阅 Red Hat Insights for Runtimes 知识库文章。

3.3. 管理控制台

包容性语言,标签变化

对于红帽承诺在我们的代码、文档和 Web 属性中替换有问题的语言,从 8.0 开始,JBoss EAP 管理控制台将显示更丰富的字词和标签。特别是,您会注意到对管理控制台资源地址和用户界面元素的以下变化:

新术语之前的术语

primary

master

secondary

slave

blocklist

blacklist

allowlist

whitelist

向响应消息添加、编辑和删除不变的 HTTP 标头

在 JBoss EAP 8.0 管理控制台中,您现在可以添加、编辑或删除恒定的 HTTP 响应标头。若要添加新路径和标头,请从 Server 页面中选择 Constant Headers,然后单击 Add。要编辑或删除现有的路径标头,请选择您要修改的标头的路径,然后点击 EditRemove

显示处理消息的 Java 消息服务网桥统计信息

消息网桥消费来自源队列或主题的消息,然后将它们发送到不同服务器上的目标队列或主题。网桥也可以将消息从一个集群发送到另一个集群。Java 消息服务(JMS)网桥提供有关网桥处理的消息的统计信息。具体来说,它收集以下数据:

  • 成功提交的消息数(消息计数)
  • 中止的消息数(中止的消息)

在这个版本中,JBoss EAP 8.0 管理控制台包含一个新的 JMS Bridge 列,用于在 Runtime 部分显示这些统计信息。请注意,这个新功能会影响 /subsystem= messaging-topic/jms-bridge=* 资源。

配置增强的审计日志记录

在 JBoss EAP 8.0 管理控制台中,您可以在 /subsystem=elytron/syslog-audit-log netobserv 资源中配置以下两个额外的审计日志记录属性:

  • syslog-format

    定义审计日志消息的格式。支持的值为 RFC3164RFC5424.("RFC" 代表"请求评论"。)

  • reconnect-attempts

    定义在关闭端点前 JBoss EAP 尝试连接到 syslog 服务器的最大失败次数。

/deployment subresources require include-runtime=true

使用 Red Hat JBoss Enterprise Application Platform 8.0 时,/deployment 的子模式已改为 runtime。对于使用 /deployment 子资源的管理操作,您必须添加 include-runtime=true

在暂停模式下启动服务器

现在,您可以使用 JBoss EAP 8.0 管理控制台在暂停模式下启动服务器。在以下下拉菜单中选择新的 Start in suspended mode 选项:

  • Runtime > Topology
  • Runtime > Server Groups
  • Runtime > Server Groups > Server
  • Runtime > Host > Server

为 certificate-authority-account 资源配置 certificate-authority 属性

借助 JBoss EAP 8.0,您可以将任何证书颁发机构用于 certificate-authority-account Elytron 资源。在以前的版本中,JBoss EAP 仅支持 Let 的 Encrypt 证书颁发机构,并且 certificate-authority 属性不可配置。

有了这个更新,您可以通过打开 JBoss EAP 管理控制台,并点击 Configuration > Subsystems > Security > Other Settings > Other Settings > Certificate Authority 来添加、配置或删除任何证书颁发机构。在这里点击 Add 来添加新证书颁发机构。要修改已有的,请选择它,然后单击 Edit。要删除证书颁发机构,请选择它,然后点击 Remove

将 OCSP 配置为 Elytron 信任管理器

使用 JBoss EAP 8.0,您可以将在线证书状态协议(OCSP)配置为 Elytron undertow 子系统的信任管理器。在以前的版本中,JBoss EAP 仅支持证书撤销列表(CRL)作为信任管理器。

有了这个更新,您可以通过打开 JBoss EAP 管理控制台,并点击 Configuration > Subsystems > Elytron > Other Settings > SSL > Trust Manager 将 OCSP 配置为您的信任管理器。接下来,可以选择或创建一个信任管理器,然后从 信任管理器窗口中选择 OCSP 选项卡,并点击 Add

暂停 Java 消息服务主题

在 JBoss EAP 8.0 管理控制台中,您现在可以导航到 Runtime > Messaging > Server > Server Name > Destination 以选择,然后暂停 Java Message Service (JMS)主题。解决了相关的消息问题后,您还可以恢复暂停的主题。JMS 之前将消息发送到所有活跃的订阅者,而没有任何方法中断它们。

非堆内存使用情况添加到服务器状态预览

使用 JBoss EAP 8.0,您可以在服务器状态预览中看到有关服务器的内存消耗的更多信息。在以前的版本中,预览仅显示堆内存使用情况: UsedCommitted。有了这个更新,它还显示非堆内存使用情况的同样的信息。

添加或更新数据源时,自动添加或更新凭证存储密码

从 JBoss EAP 8.0 开始,当您从管理控制台创建数据源时,您可以自动将该数据源的密码添加到凭据存储中。在管理控制台中,选择 Configuration > Subsystems > Datasources,然后点击 Add 来添加新的数据源。接下来,输入您要为新数据源保存密码,为凭证保存别名的凭证存储名称,以及您要使用的纯文本密码。要修改现有的数据源,请选择它,然后点击 Edit

创建、读取、更新和删除 Elytron 资源

在 JBoss EAP 8.0 管理控制台中,您现在可以创建、读取、更新或删除以下四个证据解码器:

  • 聚合证据解码器
  • 自定义证据解码器
  • X500 主题证据解码器
  • X509 主题更改名称证据解码器

要采取其中任何一个操作,请导航到 Configuration > Subsystems > Security > Mappers & Decoders > Evidence Decoder

查看部署哈希值

JBoss EAP 8.0 管理控制台现在可以在部署预览中显示您的部署哈希值。这意味着,您可以一眼就能确定您的部署是否有效和成功。

在 EJB 3 子系统中添加和配置拦截器

在 JBoss EAP 8.0 管理控制台中,您现在可以在 ejb3 子系统中添加和配置系统范围的、服务器端拦截器。在控制台中,选择 Configuration > EJB > Container 进行添加或更改。

配置 Infinispan 分布式 Web 会话关联性

借助 JBoss EAP 8.0,在 distributable-web 子系统中,您现在可以对分布式 Web 会话的关联性或负载均衡器"粘性"具有更多控制。要将会话关联更改为 Primary-owner 默认值之外的内容,请在管理控制台中点击 Configuration > Distributable Web > View > Infinispan Session。接下来,选择一个会话并选择 Affinity 进行更改。关联性选项现在包含以下内容:

  • Local
  • None
  • Primary-owner
  • Ranked

在以前的版本中,唯一可用的关联性是 Primary-owner

在 EE 子系统中配置全局目录

借助 JBoss EAP 8.0 管理控制台,您现在可以配置一个新的 ee 子系统资源 /subsystem=ee/global-directory=*。您可以使用全局目录来将内容添加到部署类路径中,而无需列出目录的内容。要配置全局目录资源,请导航到 Configuration > Subsystems > EE > Globals

在 Elytron 中配置密码套件

有了 JBoss EAP 8.0 管理控制台,您现在可以使用 cipher-suite-names 属性启用 TLS 1.3 密码套件来保护网络连接。特别是,您现在可以配置以下 elytron 子系统资源:

  • /subsystem=elytron/client-ssl-context=*
  • /subsystem=elytron/server-ssl-context=*

要从管理控制台为 /subsystem=elytron/client-ssl-context=* 资源配置 cipher-suite-names 属性,请导航到 Configuration > Subsystems > Security > Other Settings > Client SSL Context

要从管理控制台中为 /subsystem=elytron/server-ssl-context=* 资源配置 cipher-suite-names 属性,请导航到 Configuration > Subsystems > Security > Other Settings > Server SSL Context

使用 OIDC 保护应用程序和管理控制台

借助 JBoss EAP 8.0,您可以从管理控制台保护部署到 JBoss EAP 的应用,以及使用 OpenID Connect (OIDC)的 JBoss EAP 管理控制台。JBoss EAP 8.0 为 OpenID Connect (OIDC)提供 elytron-oidc-client 子系统的原生支持。

要从管理控制台配置 elytron-oidc-client 子系统,请导航到 Configuration > Subsystems > Elytron OIDC Client

要保护部署到 JBoss EAP 的应用,请配置以下资源:

  • provider
  • secure-deployment

如需更多信息,请参阅在 JBoss EAP 中使用单点登录指南中的使用 OIDC 保护应用程序

要保护 JBoss EAP 管理界面,请配置以下资源:

  • provider
  • secure-deployment
  • secure-server

另外,您可以通过进入到 Access Control 并点 Enable RBAC,为管理控制台配置基于角色的访问控制(RBAC)。

如需更多信息,请参阅 Using single sign-on with JBoss EAP 指南中的使用 OpenID 供应商保护 JBoss EAP 管理控制台

注意

您可以使用 realm 资源来配置红帽构建的 Keycloak 域。这为方便用户提供。您可以在 keycloak 客户端适配器中复制配置,并在 realm 资源配置中使用它。但是,建议使用 供应商 资源。

3.4. 管理 CLI

部署应用程序时注册 Web 上下文

您可以从管理命令行界面(CLI)使用 部署 deploy-file 命令,将应用程序部署到单机服务器或受管域中。

将应用部署到独立服务器

deployment deploy-file /path/to/test-application.war

将应用部署到受管域中的所有服务器组

deployment deploy-file /path/to/test-application.war --all-server-groups

将应用部署到受管域中的特定服务器组

deployment deploy-file /path/to/test-application.war --server-groups=main-server-group,other-server-group

在前面的示例中,runtime-name 属性的默认值为 test-application.war

使用 -- runtime-name 选项指定 runtime-name 属性时,您必须在名称中包含 .war 扩展,否则 Web 上下文不会由 JBoss EAP 注册。例如:

--runtime-name=my-application.war

3.5. 安全性

elytron 子系统中的 JAAS 域

在 JBoss EAP 8.0 中,旧的 security 子系统已被删除。要继续使用 elytron 子系统的自定义登录模块,请使用新的 Java 身份验证和授权服务(JAAS)安全域 jaas-realm

注意

JAAS-realm 仅支持与 JAAS 兼容的登录模块。有关 JAAS 的详情,请参阅 Java 身份验证和授权服务(JAAS)参考指南

jaas-realm 不支持扩展或依赖于 PicketBox API 的自定义登录模块。

虽然 elytron 子系统提供 jaas-realm,但最好使用子系统提供的其他现有安全域。这包括 jdbc-realmldap-realmtoken-realm 等等。您还可以通过配置 aggregate-realmdistributed-realmfailover-realm 来将不同的安全域组合在一起。如果这些都不适合您的目的,请实现一个自定义安全域并使用它,而不是使用自定义登录模块。

以下是您应该使用 jaas-realm 而不是实现自定义安全域的情况:

  • 您将从旧的安全模式、并已实施了自定登录模块的系统迁移到 elytron 子系统。
  • 您将从其他应用服务器迁移到 JBoss EAP,并且已实现了登录模块。
  • 您需要将多个登录模块与提供给这些登录模块的各种标志和选项合并。对于 elytron 子系统中提供的安全域,这些标志和选项可能无法配置。

如需更多信息,请参阅 使用多个身份存储保护应用程序和管理界面 指南中的创建 JAAS 域

在 Elytron 和 Elytron 客户端中配置多个证书撤销列表

现在,当您使用多个证书颁发机构 (CA) 时,您可以在 elytron 子系统中配置多个证书撤销列表(CRL)。您可以指定 trust-managercertificate-revocation-lists 属性中使用的 CRL 列表。

如需更多信息,请参阅在 JBoss EAP 中配置 SSL/TLS 指南中的配置 Elytron 中的 证书撤销检查

Keycloak SAML 适配器功能 pack

JBoss EAP 不再提供 Keycloak SAML 适配器的归档分发。您可以使用 Keycloak SAML 适配器功能 pack 来安装 keycloak-saml 子系统和相关配置。

Keycloak SAML 适配器功能 pack 提供以下层,您可以根据您的用例安装它们:

  • keycloak-saml
  • keycloak-client-saml
  • keycloak-client-saml-ejb

如需更多信息,请参阅 在 JBoss EAP 中使用单点登录 指南

原生 OpenID Connect 客户端

JBoss EAP 现在通过 elytron-oidc-client 子系统提供对 OpenID Connect (OIDC)的原生支持。因此,本发行版本中不提供红帽构建的 Keycloak Client Adapter。elytron-oidc-client 子系统充当 Relying party (RP)。elytron-oidc-client 子系统支持仅 bearer 身份验证,还提供多租户支持。例如,您可以使用多租户支持从多个红帽构建的 Keycloak 域验证应用程序的用户。

注意

JBoss EAP 原生 OIDC 客户端不支持 RP-Initiated logout。

您可以使用 elytron-oidc-client 子系统来保护部署到 JBoss EAP 以及使用 OIDC 的 JBoss EAP 管理控制台。

另外,您可以在以下任一情况下,将安全身份从 OIDC 供应商从 Servlet 传播到 Jakarta Enterprise Beans:

  • Servlet 和 Jakarta Enterprise Beans 位于同一部署中。
  • Servlet 和 Jakarta Enterprise Beans 位于不同的部署中。

如需更多信息,请参阅 在 JBoss EAP 中使用单点登录 指南

用于对密码进行哈希处理的新 hash-encodinghash-charset 属性

现在,您可以使用 hash-charsethash-encoding 属性为 elytron 子系统安全域中的散列密码指定字符集和字符串格式。默认的 hash-charset 值是 UTF-8。您可以将 hash-encoding 值设置为 base64hexbase64 是所有域的默认值,唯一的例外是 properties-realm,它的默认值是 hex

新属性包含在以下安全域中:

  • filesystem-realm
  • jdbc-realm
  • ldap-realm
  • properties-realm

如需更多信息,请参阅使用身份存储保护应用程序和管理界面 指南。

基于 Elytron 文件的审计日志的新 编码 属性

现在,您可以使用 encoding 属性在 Elytron 中指定基于文件的审计日志的 编码。默认值为 UTF-8。可能会有以下值:

  • UTF-8
  • UTF-16BE
  • UTF-16LE
  • UTF-16
  • US-ASCII
  • ISO-8859-1

如需更多信息,请参阅使用身份存储保护应用程序和管理界面 指南中的 Elytron 审计日志记录

SSLv2Hello

从 JBoss EAP 8.0 Beta 开始,您可以在 elytron 子系统中为 server-ssl-contextclient-ssl-context 指定 SSLv2Hello 协议。

警告
  • 如果要配置 SSLv2Hello,您必须配置另一个加密协议,因为后者的目的是确定连接的服务器支持哪个加密协议。
  • IBM JDK 在其客户端中不支持 SSLv2Hello,虽然服务器端连接始终接受这个协议。

filesystem-realm更新

现在,您可以加密与 filesystem-realm 中身份关联的明确密码、哈希密码和属性,以提高安全性。您可以通过两种方式执行此操作:

  • 通过在 add 操作中引用 secret 密钥来创建加密的 filesystem-realm
  • 使用 WildFly Elytron 工具中的新的 filesystem-realm-encrypt 命令加密现有的 filesystem-realm

现在,您还可以为 filesystem-realm 启用完整性检查,以确保自上次授权写入后 filesystem-realm 中的身份没有被修改。当使用 add 操作创建 filesystem-realm 时,您可以通过引用密钥对来完成此操作。WildFly Elytron 使用密钥对为身份文件生成签名。每当读取身份文件时,完整性检查都会运行。

如需更多信息, 请参阅使用身份存储保护应用程序和管理界面 指南中的 Elytron 中的 Filesystem 域

distributed-realm的更新

现在,您可以通过将新属性 ignore-unavailable-realms 设置为 true,将 distributed-realm 配置为继续搜索引用的安全域,即使连接到任何身份存储的连接也失败。

默认情况下,如果在匹配身份前与任何身份存储的连接失败,身份验证会失败,但 RealmUnavailableException 除外。

当您将 ignore-unavailable-realms 设置为 true 时,如果任何查询的域不可用,则会发出 SecurityEvent。您可以通过将 emit-events 设置为 false 来配置此行为。

如需更多信息,请参阅 使用多个身份存储保护应用程序和管理界面 指南中的以下资源:

Elytron 支持 Artemis 中的 SSLContext

在 JBoss EAP 8 中,提供了 Elytron 支持来实例化 Messaging 子系统中的 SSLContext 变量。此功能帮助您在多个位置配置 SSLContext,因为 Elytron 会实例化这个变量。SSLContext 的连接器必须在客户端的 JBoss EAP 服务器的 elytron 子系统中定义,这意味着您无法从独立的消息传递客户端应用定义它。

新的 Elytron 客户端 java 安全供应商

Elytron 客户端现在提供了一个 Java 安全供应商 org.wildfly.security.auth.client.WildFlyElytronClientlytronClientDefaultSSLContextProvider,您可以使用它来注册 Java 虚拟机(JVM)范围的默认 SSLContext

当您在 JVM 中注册具有高优先级的提供程序时,使用 SSLContext.getDefault () 方法的所有客户端库都会获取在 Elytron 客户端配置中配置为默认 SSL 上下文的实例。这样,您可以在不直接与 Elytron API 交互的情况下使用 Elytron 客户端的 SSL 上下文配置。

如需更多信息,请参阅 JBoss EAP 指南中的 在 JBoss EAP 客户端中使用 Elytron 客户端默认 SSL context 安全供应商

可以从 Elytron 获取自定义主体

在 JBoss EAP 8.0 中,您现在可以从 Elytron 获取自定义主体。在以前的版本中,Elytron 需要主体作为 NamePrincipal 实例进行身份验证。虽然可以使用从当前 SecurityDomain 获取的 SecurityIdentity,并使用 SecurityIdentity 属性从域获取信息,但它需要依赖 SecurityDomainSecurityIdentity 而不是更通用的和标准化方法,如 jakarta.security.enterprise.SecurityContext.getCallerPrincipal ()

现在,在使用 Elytron 时,您可以从 getCallerPrincipal () 方法获取自定义主体。如果您的使用旧安全的应用程序代码依赖于从 getCallerPrincipal () 方法获取自定义主体,您可以在不需要代码更改的情况下迁移应用程序。

3.6. 集群

使用 ProtoStream 配置 web 会话复制

现在,您可以在 JBoss EAP 8.0 中使用 ProtoStream 而不是 JBoss Marshalling 来配置 web 会话复制。

请参阅 如何配置 web 会话复制,以便在 JBoss EAP 8.0 中使用 ProtoStream 而不是 JBoss Marshalling

停止从不同节点执行批处理任务

现在,您可以在 JBoss EAP 8.0 中停止从不同的集群节点执行批处理作业。如需更多信息,请参阅在 JBoss EAP 8.0 中使用带有共享相同作业存储库的节点集群的批处理处理 JBeret

3.7. Jakarta EE

Jakarta EE Core Profile

Jakarta EE 10 Core Profile 现在包括在 JBoss EAP 8.0 中。Core Profile 是一个小型轻量级配置集,提供适合较小的运行时的 Jakarta EE 规格,如微服务和云服务。Jakarta EE 10 Core Profile 作为 Galleon 置备层 ee-core-profile-server 提供。

如需有关 Core Profile Galleon 层的更多信息,请参阅 JBoss EAP 中的 Capability pruning for OpenShift: Base layer

3.8. 数据源子系统

为数据源配置自定义 exception-sortervalid-connection-checker

现在,您可以使用 JBoss 模块为数据源配置自定义的 exception-sortervalid-connection-checker

请参阅 如何在 JBoss EAP 8 中为数据源配置自定义的 exception-sorter 或 valid-connection-checker

支持 JBoss EAP 8.0 的 eap-datasources-galleon-pack

现在,您可以使用 eap-datasources-galleon-pack Galleon feature-pack 置备可连接到数据库的 JBoss EAP 8.0 服务器。

3.9. 休眠

Hibernate Search 6 替换 Hibernate Search 5 API

Hibernate Search 5 API 已被删除,并被 JBoss EAP 8.0 中的 Hibernate Search 6 API 替换。

要查看删除的功能列表,请参阅 JBoss EAP 7.4 中的 Hibernate Search 5 API 已弃用,并在 EAP 8.0 中删除

注意

Hibernate Search 6 API 与 Hibernate Search 5 API 向后兼容。您需要将您的应用程序迁移到 Hibernate Search 6。

JBoss EAP 8.0 中包含的 Hibernate Search 6 的最新版本是 6.2。如果您要从 Hibernate Search 5 迁移,您应该考虑迁移到 6.0、6.1 6.2 版本。

如需更多信息,请参阅以下迁移指南:

注意

Hibernate Search 6.2 与 Hibernate ORM 6.2 兼容。如需更多信息,请参阅 Hibernate Search 6.2 参考文档中的 Hibernate ORM 6 部分。

Hibernate Search 6 支持 Elasticsearch

JBoss EAP 8.0 还支持在 Hibernate Search 6 中使用 Elasticsearch 后端,将数据索引到远程 Elasticsearch 或 OpenSearch 集群中。

要查看可能的 Hibernate 搜索架构和后端列表,请参阅 Table 2。构架的比较 中的 Hibernate Search 6.2 参考文档。

有关配置 Hibernate Search 6 的更多信息,请参阅 WildFly Developer 指南中的使用 Hibernate Search

3.10. Infinispan

支持 Infinispan 分布式查询、计数器和锁定 API 和 CDI 模块

现在,您可以在 JBoss EAP 8.0 中使用 Infinispan API 进行分布式查询、计数器和锁定。

JBoss EAP 8.0 中还提供了 Infinispan CDI 模块来创建和注入缓存。

如需更多信息,请参阅 EAP 8 现在支持 Infinispan 查询、计数器、锁定和 CDI

3.11. 消息传递

添加新的 Galleon 层

添加了一个新的 Galleon 层,以支持与嵌入式 ActiveMQ Artemis 代理的 Jakarta 消息传递服务(JMS)集成。如需更多信息,请参阅迁移指南中的 嵌入式代理消息传递部分 Galleon 层

3.12. Web 服务器(Undertow)

现在,您可以使用地址 /subsystem=undertow/servlet-container=default/setting= affinity-cookie 中的 affinity-cookie 资源配置单独的 Cookie 来存储负载均衡器的会话关联信息。

如需更多信息,请参阅红帽知识库解决方案 如何在 JBoss EAP 8 中配置 affinity-cookie 和 session-cookie

3.13. ejb3 子系统

JBoss EAP 8.0 服务器与 JBoss EAP 7 和 JBoss EAP 6 的互操作性

在 JBoss EAP 8.0 中,您可以启用 JBoss EAP 8.0 和 JBoss EAP 服务器的旧版本之间的互操作性。JBoss EAP 支持其 API 类使用 jakarta 软件包命名空间的 Jakarta EE 10。但是,旧版 JBoss EAP 使用 javax 软件包命名空间。

重要
  • JBoss EAP 6 和 JBoss EAP 7 支持的旧版本
  • JBoss EAP 6 和 JBoss EAP 7 之间的互操作性不受此问题的影响,因为两个服务器都支持 javax 软件包命名空间。

有关如何在 JBoss EAP 8.0 和 JBoss EAP 旧版本之间启用互操作性的更多信息,请参阅 如何启用互操作性

基于 Infinispan 的分布式计时器

在 JBoss EAP 8.0 中,您现在可以使用基于 Infinispan 的分布式计时器来调度集群中的持久 Jakarta Enterprise Bean 计时器,您可以扩展到大型集群。如需更多信息,请参阅 EAP 8 - 如何配置基于 Infinispan 的分布式计时器

可分布式 EJB 子系统

使用 distributable-ejb 子系统配置 ejb3 子系统功能所需的集群抽象提供程序,例如:

  • 有状态会话 Bean (SFSB) 缓存工厂
  • EJB 客户端应用程序的客户端映射 registry
  • 分布式 EJB 计时器

目前,您可以在系统范围的级别上定义这些供应商。计划通过自定义 ejb3 子系统来开发功能,以启用特定于部署的提供程序。有关更多信息,请参阅 EAP 8 中的 distributable-ejb 子系统

3.14. OpenShift

Red Hat build of Keycloak SAML 支持 JBoss EAP 8.0

在发布适配器时,支持将红帽构建的 Keycloak SAML 适配器与 JBoss EAP 8.0 Source-to-Image (S2I)镜像搭配使用。如需更多信息,请参阅 OpenShift、SSO SAML 对 EAP 8 的支持

使用 Maven 插件调配 JBoss EAP 服务器

现在,您可以使用 OpenShift 上的 JBoss EAP Maven 插件:

  • 使用 Galleon 置备修剪的服务器。
  • 在置备的服务器上安装您的应用程序。
  • 使用 JBoss EAP 管理 CLI 调整服务器配置。
  • 将额外文件打包到服务器安装中,如 keystore 文件。
  • 将插件集成到 JBoss EAP 8.0 source-to-image 应用构建中。

如需更多信息,请参阅使用 Maven 插件置备 JBoss EAP 服务器

JBoss EAP Source-to-image 的 OpenID Connect 支持

现在,您可以使用新的 elytron-oidc-client 子系统来保护部署到带有 OpenID Connect (OIDC)的应用程序,而不是安装之前所需的 Keycloak 客户端适配器。您可以使用环境变量配置 elytron-oidc-client 子系统,以使用 OIDC 保护应用程序。这个版本不提供 Red Hat build of Keycloak Client Adapter。如需更多信息,请参阅使用 OpenID Connect 来保护 OpenShift 上的 JBoss EAP 应用

使用 Source-to-Image 构建应用程序镜像

在 JBoss EAP 8.0 中,已安装的服务器已从 Source-to-Image (S2I)构建器镜像中删除。Galleon 功能包和层现在用于在 S2I 构建阶段置备服务器。若要调配服务器,请将 JBoss EAP Maven 插件包含在应用的 pom.xml 文件中。如需更多信息,请参阅在 OpenShift 中使用 Source-to-image 构建应用程序镜像

使用环境变量覆盖管理属性

若要更轻松地将 JBoss EAP 服务器配置适应您的服务器环境,您可以使用环境变量覆盖任何管理属性的值,而无需编辑配置文件。您不能覆盖类型为 LISTOBJECTPROPERTY 的管理属性。在 JBoss EAP 8.0 OpenShift 运行时镜像中,这个功能会被默认启用。如需更多信息,请参阅使用环境变量 覆盖管理属性

环境变量检查来解析管理模型表达式

JBoss EAP 现在在解析管理模型表达式时支持环境变量检查。在以前的 JBoss EAP 版本中,JBoss EAP 服务器仅检查管理表达式中是否有 Java 系统属性。现在,服务器会检查相关的环境变量和系统属性。如果同时使用这两个属性,JBoss EAP 将使用 Java 系统属性而不是 环境变量来解析管理模型表达式。有关使用环境变量解析管理模型表达式的更多信息,请参阅使用环境变量和模型表达式解析

Maven 兼容性

Maven 版本 3.8.5 或更早版本,包括早于 3.3.2 的 Apache Maven WAR 插件版本。这会导致使用 eap-maven-plugin 打包错误。要解决这个问题,您必须升级到 Maven 版本 3.8.6 或更高版本。或者,您可以将 maven-war-plugin 依赖项(版本 3.3.2 或更高版本)添加到应用程序 pom.xml 中。

节点命名的改进

jboss.node.name 系统属性的值是从 pod 主机名生成的,可以使用 JBOSS_NODE_NAME 环境变量进行自定义。此系统属性不再充当事务 ID,并且长度没有限制 23 个字符,因为它在之前的 JBoss EAP 版本中使用。

但是,在 JBoss EAP 8.0 中,新的系统属性 jboss.tx.node.id 也会从 pod 主机名生成,并可使用 JBOSS_NODE_NAME 环境变量进行自定义。这个系统属性现在长度限制为 23 个字符,并充当事务 ID。

JBoss EAP 8.0 镜像中的 Java 选项更改

JVM 在 JBoss EAP 8.0 镜像中自动调整内存和 cpu 限制和垃圾收集器配置。镜像不使用计算 -Xms-Xmx 选项,使用 -XX:InitialRAMPercentage-XX:MaxRAMPercentage 选项来动态实现相同的功能。CONTAINER_CORE_LIMITJAVA_CORE_LIMIT 已被删除。另外,-XX:ParallelGCThreads, -Djava.util.concurrent.ForkJoinPool.common.parallelism, 和 -XX:CICompilerCount 不再使用。

在 OpenShift 上部署第三方应用程序

使用 JBoss EAP 8.0,您可以使用编译的 WAR 文件或 EAR 归档为 OpenShift 部署创建应用程序镜像。通过使用 Dockerfile,您可以使用完整的运行时堆栈(包括操作系统、Java 和 JBoss EAP 组件)将这些存档部署到 JBoss EAP 服务器中。您可以根据 Source-to-Image (S2I)创建应用程序镜像。

OpenShift 上的 JBoss EAP 8.0 服务器安装中排除的文件

在 OpenShift 上安装 JBoss EAP 8.0 服务器时,不需要以下文件,并被有意排除:

  • bin/appclient.sh
  • bin/wsprovide.sh
  • bin/wsconsume.sh
  • bin/jconsole.sh
  • bin/client

3.15. Operator

JBoss EAP 8.0 Operator

JBoss EAP 8.0 Operator 很快就会可用。当 JBoss EAP Operator 可用时,您将能够使用操作器部署 JBoss EAP 8.0 应用程序。如需更多信息,请参阅 JBoss EAP Operator 支持政策。

使用 JBoss EAP 8.0 Operator 增强的 Health Probe 配置

JBoss EAP 8.0 Operator 现在为健康探测提供了改进的配置选项,专注于在 JBoss EAP 8.0 和 JBoss EAP 7.4 镜像之间更好地探测自定义和兼容性。此功能增强可确保两个镜像间的平稳互操作性,允许探测灵活地调整其执行方法。

JBoss EAP 8.0 实例中的主要改进:

  • 使用 JBoss EAP 8.0 和 JBoss EAP 7 的镜像的功能。
  • 能够配置 存活度ProbeReadinessProbeStartupProbes

启动探测示例配置:

apiVersion: wildfly.org/v1alpha1
kind: WildFlyServer
metadata:
  name: ...
spec:
  applicationImage: '...'
  livenessProbe:
    httpGet:
      path: /health/live
      port: 9990
      scheme: HTTP
    initialDelaySeconds: 30
  readinessProbe:
    httpGet:
      path: /health/ready
      port: 9990
      scheme: HTTP
    initialDelaySeconds: 10
  replicas: 1
  startupProbe:
    httpGet:
      path: /health/started
      port: 9990
      scheme: HTTP
    initialDelaySeconds: 60

注意

默认情况下,JBoss EAP 8.0 应用保留 shell 探测以确保基于 JBoss EAP 7 的应用程序的向后兼容性。

3.16. Quickstarts 和 BOMs

支持的 EAP 8 快速入门

所有支持的 JBoss EAP 8 快速入门都位于 jboss-eap-quickstarts 中。

Maven 的新 JBoss EAP BOMs

JBoss EAP BOM 提供 Maven BOM 文件,它指定了构建或测试 Maven 项目所需的 JBoss EAP 依赖项版本。此外,Jakarta EE 10 BOM 为相关框架提供依赖项管理,如 Hibernate、RESTasy 和专有组件,如 Infinispan 和 Client BOMs。

3.17. 服务器迁移工具

JBoss EAP 服务器迁移工具

服务器迁移工具现在是独立迁移工具,不再包含在 JBoss EAP 8.0 中。您可以单独下载迁移工具。

3.18. ActiveMQ Artemis

无法在 ActiveMQ 服务器上添加网桥

在 JBoss EAP 7 中,您可以在创建源队列前在 messaging-activemq 子系统中创建 Java 消息服务(JMS)网桥。网桥在源队列创建前保持不活跃。

在 JBoss EAP 8 中,您必须先创建源队列,然后才能使用 bridge:add 命令创建 JMS 网桥。如果您在创建源队列前创建 JMS 网桥,则 bridge:add 命令将失败。

messaging-activemq 子系统中添加新连接器

在 JBoss EAP 8.0 中,当使用 messaging-activemq 子系统中的 CLI 添加新连接器时,您必须重新启动或重新加载服务器,以便系统的其他部分可以访问连接器。在 JBoss EAP 7.4 中,一个连接器会被系统的其他部分添加和引用,但无法在重启或重新加载服务器的情况下使用它。

3.19. jakarta Faces 实施

MyFaces 的 Jakarta Faces 实施的更改

在以前的版本中,您可以将 Jakarta Faces 实施替换为替代方案。但是,对于 JBoss EAP 8.0 中的 MyFaces,此功能已移到需要使用 Galleon 工具置备的外部功能软件包中。如果要使用非默认 Mojarra 版本,则需要手动配置。如需更多信息,请参阅如何在 EAP 8 中配置 Multi-JSF 功能

3.20. 高可用性

JGroup 协议堆栈的更新

在 JBoss EAP 8.0 中的 JGroup 协议堆栈中添加了新的 "RED" 协议。另外,现有协议已被升级。

下表列出了协议更新:

旧协议升级的协议

FD_SOCK

FD_SOCK2

FD_ALL

FD_ALL3

VERIFY_SUSPECT

VERIFY_SUSPECT2

FRAG3

FRAG4

虽然旧协议堆栈仍可在 JBoss EAP 8.0 中工作,但使用升级的堆栈来获得最佳结果。

3.21. jboss-eap-installation-manager

现在,您可以使用 jboss-eap-installation-manager 安装和更新 JBoss EAP 8.0。您还可以执行服务器管理操作,包括更新、恢复和各种频道管理任务。

如需更多信息,请参阅 安装指南

3.22. jboss-eap-installation-manager的管理 CLI 集成

在 JBoss EAP 8.0 中,引入了一个显著的增强,它随着在 安装程序 命令下的管理 CLI 集成 jboss-eap-installation-manger。此功能增强允许您在独立或受管域模式中无缝执行广泛的服务器管理操作,如更新、恢复和管理频道操作。

如需更多信息,请参阅更新 指南

3.23. jboss-eap-installation-manager的 Web 控制台集成

在 JBoss EAP 8.0 中,您现在可以使用 Web 控制台在 JBoss EAP 安装中更新、恢复和管理频道。但是,建议您使用 jboss-eap-installation-manager

如需更多信息,请参阅更新 指南

3.24. JBoss EAP 应用程序迁移

如果您使用 galleon/provisioning.xml 配置文件,使用有效的 S2I 置备 JBoss EAP 7.4 安装,并希望将该文件转换为 JBoss EAP 8 的有效配置,您必须注意以下更改:

  • galleon/provisioning.xml 配置文件中,您必须使用 org.jboss.eap:wildfly-ee-galleon-packorg.jboss.eap:eap-cloud-galleon-pack feature packs 而不是 eap-s2i feature pack。
  • 要成功使用这些功能软件包,还必须通过在应用程序 pom.xml 中配置 eap-maven-plugin 或使用 S2I 环境变量来启用使用 JBoss EAP 8 频道。

第 4 章 不支持、弃用和删除的功能

4.1. 不支持的功能

红帽不支持以下功能。

日志记录

JBoss EAP 8.0 不支持 Apache Log4j 版本 1 API。如果应用程序没有打包 log4j.jar,并将 Log4j 配置作为应用程序的一部分,则您必须更新它们。有关迁移或更新应用程序的更多信息,请参阅红帽知识库解决方案 迁移:EAP 8 中不再提供 Apache Log4j 版本 1

Agroal 子系统

JBoss EAP 8.0 不再支持 Agroal 子系统。

4.2. 已弃用的功能

本发行版本中弃用了一些功能。这意味着不会对这些功能进行任何增强,它们可能会在以后的版本中被删除。如需更多信息,请参阅 Red Hat JBoss Enterprise Application Platform (EAP) 8 中已弃用

红帽将根据我们的标准支持条款和条件继续提供完全支持和漏洞修复。有关红帽支持政策的更多信息,请参阅红帽客户门户网站中的 Red Hat JBoss Middleware 产品更新和支持政策

以下功能已弃用:

JBoss 工具

JBoss 工具在 JBoss EAP 8.0 中已弃用。

4.3. 删除的功能

JBoss EAP 8.0 删除了以下功能:

JolokiaPrometheus

本发行版本中已删除 JolokiaPrometheus。这些功能已被丢弃,不再受到红帽的支持。JBoss EAP 服务器通过服务器指标端点公开指标:<server address>:<management port>/metrics

环境变量

红帽已在 JBoss EAP 8.0 中删除了以下环境变量:

  • GALLEON_PROVISION_DEFAULT_FAT_SERVER
  • AB_JOLOKIA_AUTH_OPENSHIFT
  • AB_JOLOKIA_CONFIG
  • AB_JOLOKIA_DISCOVERY_ENABLED
  • AB_JOLOKIA_HOST
  • AB_JOLOKIA_HTTPS
  • AB_JOLOKIA_ID
  • AB_JOLOKIA_OFF
  • AB_JOLOKIA_OPTS
  • AB_JOLOKIA_PASSWORD
  • AB_JOLOKIA_PASSWORD_RANDOM
  • AB_JOLOKIA_PORT
  • AB_JOLOKIA_USER
  • AB_PROMETHEUS_ENABLE
  • AB_PROMETHEUS_JMX_EXPORTER_CONFIG
  • AB_PROMETHEUS_JMX_EXPORTER_PORT
  • JGROUPS_ENCRYPT_SECRET

JDK 8

JDK 8 已从 Red Hat JBoss Enterprise Application Platform 8.0 中删除。JDK 11 或 JDK 17 需要。

旧的安全域

旧的安全域已从 JBoss EAP 8.0 中删除。改为使用 elytron 子系统中提供的安全域。

如需更多信息,请参阅使用身份存储保护应用程序和管理界面,以及 使用多个身份存储保护应用程序和管理界面 指南。

Picketbox

PicketBox 已从 Red Hat JBoss Enterprise Application Platform 8.0 中删除。任何旧的安全配置都必须迁移到 elytron 子系统。有关将安全配置迁移到 elytron 子系统的更多信息,请参阅迁移到 Elytron

PicketBox vault

PicketBox vault 已从 JBoss EAP 8.0 中删除。使用 elytron 子系统提供的凭据存储来存储敏感字符串。

如需更多信息,请参阅 JBoss EAP 指南中的安全存储凭证 中的 Elytron 中的凭证和 凭证存储

PicketLink 子系统已从 JBoss EAP 8.0 中删除。使用红帽构建的 Keycloak 而不是 PicketLink 身份提供程序,以及 Keycloak SAML 适配器功能提供的 Galleon 层,而不是 PicketLink 服务供应商。

如需更多信息,请参阅在 JBoss EAP 中使用单点登录指南中的使用 SAML 保护应用程序

discovery-groupbroadcast-group 资源

Red Hat JBoss Enterprise Application Platform 7.4 删除了 discovery-groupbroadcast-group 资源。这些资源仍然在 JBoss EAP8.0 中删除。

另外,红帽 JBoss Enterprise Application Platform 7.4 通过将 discovery-groupbroadcast-group 资源的所有实例替换为 jgroups-discovery-groupsocket-discovery-group 资源降低了对其 Web 控制台的影响。

JBoss EAP 7.3 在 messaging 子系统中弃用了以下资源:

  • /subsystem=messaging-activemq/discovery-group=*
  • /subsystem=messaging-activemq/server=default/broadcast-group=*
  • /subsystem=messaging-activemq/server=default/discovery-group=*

JBoss EAP 7.3 将这些已弃用的资源替换为 jgroups-discovery-groupsocket-discovery-group 资源。每个弃用的资源都包含来自每个替换资源的一个属性,该资源的一个属性设为 null,另一个属性设为大于 0 的值。这些设置导致 discovery-groupbroadcast-group 保持活跃状态,但仍将其所有功能分配给 jgroups-discovery-groupsocket-discovery-group 资源。

Quickstarts

以下过时的或冗余快速入门已从 JBoss EAP 8.0 中删除:

  • app-client
  • bean-validation
  • EJB-asynchronous
  • ejb-in-ear
  • ejb-in-war
  • EJB-security
  • ejb-security-jaas
  • greeter
  • helloworld-html5
  • helloworld-mbean
  • helloworld-mdb-propertysubstitution
  • helloworld-rs
  • helloworld-ssl
  • inter-app
  • jaxws-addressing
  • jaxws-pojo
  • jts-distributed-crash-rec
  • kitchensink-angularjs
  • kitchensink-ear
  • kitchensink-jsp
  • kitchensink-ml
  • logging-tools
  • managed-executor-service
  • messaging-clustering
  • payment-cdi-event
  • resteasy-jaxrs-client
  • spring-greeter
  • spring-kitchensink-basic
  • spring-kitchensink-springmvctest
  • tasks-rs
  • websocket-client
  • xml-jaxp

Red Hat build of Keycloak Client Adapter

Red Hat JBoss Enterprise Application Platform 8.0 不提供红帽构建的 Keycloak 客户端适配器。使用新的 elytron-oidc-client 子系统来保护部署到带有 OpenID Connect (OIDC) 的 JBoss EAP 的应用。

Red Hat Enterprise Linux 中的 Java 服务

在 Red Hat Enterprise Linux (RHEL)上运行的 Java 服务(JSVC)已从 JBoss EAP 8.0 中删除。

BOM

以下 BOM 已被删除:

  • JBoss Jakarta EE 8 规范 API BOM 已被删除。在 Maven 项目中使用 JBoss EAP EE BOM。
  • 移除了 EAP Runtime Artifacts BOM。在 Maven 项目中使用 JBoss EAP EE BOM。
  • JBoss EJB 客户端旧的 BOM 已被删除。

如需更多信息,请参阅 迁移指南中的 将 JBoss EAP 应用的 Maven 项目迁移到 JBoss EAP 8.0

连接器属性

在 JBoss EAP 7.4 中,modcluster 子系统弃用 proxy 元素上的 connector 属性,并将其替换为 listener 属性以避免混淆。JBoss EAP 7.4 中的管理模式使用 listener 属性,但也允许设置 connector 属性。在 JBoss EAP 8.0 中,已弃用的 连接器 属性已被删除,现在您必须使用 listener 属性。如需更多信息,请参阅 Red Hat JBoss Enterprise Application Platform (EAP) 7 中已弃用

iiop-openjdk 子系统的更改

在 JBoss EAP 8.0 中,旧的 security 子系统已被删除,并由 elytron 子系统替代。您可以将 elytron 子系统安装为对象资源代理(ORB)的安全拦截器。

为了保持与 JBoss EAP 7 的互操作性,例如,使用 JBoss EAP 8.0 主机控制器将 JBoss EAP 作为受管域运行时,已保留了配置旧安全拦截器的功能。

但是,当将 JBoss EAP 作为单机服务器运行时,不支持iiop-openjdk/security 属性设置值 clientidentity

Hibernate Search 5 API

Hibernate Search 5 API 在 JBoss EAP 7.4 中已弃用,并在 JBoss EAP 8.0 中删除,并替换为 Hibernate Search 6 API。

注意

Hibernate Search 6 API 与 Hibernate Search 5 API 向后兼容。您需要将您的应用程序迁移到 Hibernate Search 6 以保持可操作性。要迁移应用程序,请参阅 Hibernate Search 6.0 迁移指南

要查看已删除 API 的列表,请参阅 JBoss EAP 7.4 中的 Hibernate Search 5 API 已弃用,并在 EAP 8.0 中删除

Apache Log4j 版本 1

JBoss EAP 8.0 不支持 Apache Log4j 版本 1 API。如果您的应用程序没有打包 log4j.jar 和 Log4j 配置作为应用程序的一部分,您必须更新这些软件包。有关迁移或更新应用程序的更多信息,请参阅红帽知识库解决方案 迁移:EAP 8 中不再提供 Apache Log4j 版本 1

如需更多信息,请参阅 Apache Log4j 版本 1 API 的 Removal

Apache Xerces 和 Apache Xalan

Apache Xerces 和 Apache Xalan JBoss 模块(实施 JAXP 版本 1.5)已从 JBoss EAP 8.0 中删除。使用 JDK 的 java.xml JPMS 模块提供的默认 JAXP 实施,后者实施 JAXP 版本 1.6。如需更多信息,请参阅 JBoss EAP 中的 JDK 提供的 JAXP 实现

第 5 章 已解决的问题

请参阅 Red Hat JBoss Enterprise Application Platform 8.0 解决的问题,以查看来自针对此版本解决的情况的问题列表。

第 6 章 修复的 CVE

JBoss EAP 8.0 包括以下与安全相关的问题的修复:

第 7 章 已知问题

请参阅 Red Hat JBoss Enterprise Application Platform 8.0 的已知问题以查看本发行版本的已知问题列表。

7.1. Infinispan

在默认的非 HA 服务器配置上执行时,/subsystem=distributable-web/infinispan-session-managementPROFILE:add 操作可能会失败

Issue - JBEAP-24997
/subsystem=distributable-web/infinispan-session-managementPROFILE:add 操作会自动添加 affinity=primary-owner 子资源,它需要 routing=infinispan 资源。此操作可能会失败,因为默认的非 HA 服务器配置中没有定义所需的 routing=infinispan 资源。
临时解决方案

为避免这种无效的中间状态,请在批处理中执行 infinispan-session-management:addaffinity=local:add 操作。

Example:

batch
/subsystem=distributable-web/infinispan-session-management=ism-0:add(cache-container=web,granularity=SESSION)
/subsystem=distributable-web/infinispan-session-management=ism-0/affinity=local:add()
run-batch -v

HotRod 无法为 Infinispan 进行外部化创建分布式会话

Issue - JBEAP-26062

涉及 Red Hat JBoss Enterprise Application Platform 8.0 和 Red Hat Data Grid on OpenShift Container Platform 的互操作性测试显示写入 Infinispan 远程缓存会导致内部服务器错误的问题。当 remote-cache-container 配置为使用默认的 marshaller 时,JBoss Marshalling,缓存写入会导致 HotRod 抛出错误,因为只支持 byte[] 实例。

错误消息示例:

Caused by: java.lang.IllegalArgumentException: Only byte[] instances are supported currently!
	at org.infinispan.client.hotrod@14.0.17.Final-redhat-00002//org.infinispan.client.hotrod.marshall.BytesOnlyMarshaller.checkByteArray(BytesOnlyMarshaller.java:27)

临时解决方案

remote-cache-container 配置为使用 ProtoStream marshaller marshaller=PROTOSTREAM

配置示例:

/subsystem=infinispan/remote-cache-container=<RHDG_REMOTE_CACHE_CONTAINER_RESOURCE_NAME>:write-attribute(name=marshaller,value=PROTOSTREAM)

7.2. 数据源配置

不支持 mssql 连接弹性

Issue - JBEAP-25585
Red Hat JBoss Enterprise Application Platform 8.0 不支持 MsSQL JDBC 驱动程序版本 10.2.0 及之后的版本的连接弹性。连接弹性会导致驱动程序处于恢复管理器的意外状态。默认情况下,此驱动程序启用了连接弹性,用户必须手动禁用。
临时解决方案

ConnectRetryCount 参数控制连接失败时重新连接尝试的数量。此参数默认设置为 1,启用连接弹性。

要禁用连接弹性,请将 ConnectRetryCount 参数从 1 改为 0。您可以在服务器配置文件 standalone.xmldomain.xml 的数据源配置部分中设置连接属性。有关如何配置数据源设置的更多信息,请参阅如何为 OpenShift 在 EAP 中配置数据源设置 ,以及如何在红帽客户门户网站上的 JBoss EAP 的 Datasource 配置中指定连接属性

7.3. 服务器管理

存活度探测 :9990/health/live 在 Deployment Error 时不会重启 pod

Issue - JBEAP-24257

在 JBoss EAP 7.4 中,当有部署错误导致重启容器时,python 存活度探测会报告 "not alive"。

在 JBoss EAP 8.0 中,存活度探测 :9990/health/live 使用服务器管理模型来确定就绪度。如果 server-state 正在运行,且没有引导或部署错误,则存活度检查会在服务器进程运行时报告 UP

因此,部署错误可能会导致 pod 正在运行,但为 "not ready"。这只会影响部署期间出现间歇性错误的应用程序。如果部署期间始终发生这些错误,容器将永不就绪,并且 pod 处于 CrashLoopBackoff 状态。

注意

:9990/health/live 是 Helm chart 和 JBoss EAP operator 使用的默认存活度探测。

临时解决方案

如果有部署错误会导致 pod 正在运行,但报告了 "not ready",请检查服务器引导过程,解决导致错误的部署问题,然后验证服务器是否已正确部署。

如果无法修复部署错误,请将启动探测更改为使用 /ready HTTP 端点,以便引导错误会触发 pod 重启。例如,如果您使用 Helm 部署 JBoss EAP 应用程序,请通过更新 deploy.livenessProbe 字段来配置存活度探测:

deploy:
  livenessProbe:
    httpGet:
      path: /health/ready

7.4. 消息传递框架

弃用 org.apache.activemq.artemis 模块和警告信息

Issue - JBEAP-26188
org.apache.activemq.artemis 模块已在 JBoss EAP 8.0 中弃用。当部署在 MANIFEST.MFjboss-deployment-structure.xml 配置文件中包含此模块依赖项的应用程序时,会触发警告信息。如需更多信息,请参阅 Red Hat JBoss Enterprise Application Platform (EAP) 8 中已弃用
临时解决方案
使用 JBoss EAP 8.0 更新 1,您可以通过将配置文件中的 org.apache.activemq.artemis 模块替换为 org.apache.activemq.artemis.client 公共模块来防止记录这些警告消息。如需更多信息,请参阅 EAP 8 中的org.jboss.as.dependency.deprecated …​ 使用已弃用的模块("org.apache.activemq.artemis")

7.5. IBM MQ 资源适配器

IBM MQ 资源适配器的限制和已知问题

IBM MQ 资源适配器受到一些限制的支持。如需更多信息 ,请参阅部署 IBM MQ 资源适配器





更新于 2024-02-08

法律通告

Copyright © 2024 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.